Je vais vous mettre l'intégralité de l'exercice ainsi peut comprendrez vous mieux la finalité de ce que je vous demande :
Question 1 . Denissez les variables globales n que vous initialiserez a 6 et la matrice
matriceLettres qui contient n lignes et n colonnes, chacune des cases de la matrice contiendra
la cha^ne vide "".
Denissez une fonction remplissage matrice qui va remplir matriceLettres avec les lettres de
A a R. Pour cela, denissez (dans la fonction) une liste lettres qui contiendra toutes les lettres.
Construisez un dictionnaire dicoLettres ou les clefs sont les lettres de A a R et la valeur est 2
pour chaque clef. Remplissez toutes les cases de la matrice en tirant a chaque fois aleatoirement
une lettre dans le dictionnaire. N'oubliez pas de mettre a chaque fois a jour le dictionnaire.
Question 2 . Denissez la variable globale decouvert qui est une matrice de n lignes et
n colonnes ou chacune des cases contient au depart la valeur False. Lorsque deux cartes
identiques seront retournees, les deux cases correspondantes de decouvert seront mises a True.
Ecrivez une fonction ni qui renvoie True si la partie est terminee (toutes les cases de
decouvert sont a True) et False sinon.
Question 3 . Denissez les widgets suivants et les placer (voir Figure 1.) :
{ deux Labels titre et termine contenant les textes respectifs « Jeu du memory » et « Bonne
partie ».
{ un Canvas pour acher la grille.
{ deux boutons boutonQuitter et boutonRecommencer.
Question 4 . Denissez une fonction dessin grille pour dessinez la grille (voir gure 1.) Pour
cela, on eectue un parcours de la matrice decouvert et pour chaque case ayant la valeur True
on ache la lettre correspondante dans matriceLettres.
Question 5 . Creez une fonction init() qui permet d'initialiser la partie (elle sera par la suite
associee au bouton boutonRecommencer) et une fonction action(ligne,colonne) pour retourner
une carte. On distinguera s'il s'agit de la premiere ou deuxieme carte du tour. Lorsque l'on
retourne la deuxieme carte, les deux cartes restent a decouvert si elles sont identiques. On
veriera a chaque fois si la partie est terminee en appelant la fonction ni(). Si c'est la cas, on
mettra la message « La partie est nie »dans le Label termine (voir gure 2.)
Associez a la grille une fonction retourner(event) qui recupere les coordonnees du point de
clique de souris lorsque l'on clique a gauche a l'interieur du Canvas. Cette fonction calcule les
valeurs valeurs ligne et colonne et appelle la fonction action(ligne,colonne).
Désolé pour les "coquilles" mais vu leur nombre je ne me sens pas l'âme de toutes les modifier
