begin process at 2010 09 08 23:18:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Python

 > 

Divers

 > 

Aide et documentation

 > 

Python, jeu de mémory


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Python, jeu de mémory

mardi 20 avril 2010 à 13:31:47 | Python, jeu de mémory

Mattmad

Bonjour, je suis en train de plancher sur un jeu de memory via python mais je ne parviens pas à résoudre un "petit" problème, je vous pose la question tel quelle m'est posée :
Défi nissez la variable globale découvert qui est une matrice de n lignes et
n colonnes où chacune des cases contient au départ la valeur False. Lorsque deux cartes
identiques seront retournées, les deux cases correspondantes de decouvert seront mises à True.

Ecrivez une fonction ni qui renvoie True si la partie est terminée (toutes les cases de
decouvert sont à True) et False sinon.

Mon problème réside sur la deuxième partie (en gras), je vois parfaitement comment créer la matrice False mais après je ne sais pas. Je vous met ce dont je dipose déjà comme fonction :

Code Python :
def matriceLettres(n):  
    matrice=n*[""]  
    for i in range(len(matrice)):  
        matrice[i] = n*[""]  
    return matrice  

from random import*
def remplissage_matrice(n):  
	dicoLettres={}  
	lettres=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R"]  
	matrice=matriceLettres(n)  
	for i in lettres:  
		dicoLettres[i]=2  
	for a in range(n):
		for b in range(n):		
			c=lettres[randrange(len(lettres))]
			dicoLettres[c]=dicoLettres[c]-1
			# la première fois que la lettre est trouvée: Insertion dans matrice
			if dicoLettres[c]>0:
				matrice[a][b]=c
			# la seconde fois, la lettre est ajoutee dans la matrice et supprimee de lettres
			elif dicoLettres[c] == 0:	
				matrice[a][b]=c
				lettres.remove(c)
	return matrice



J'espère avoir de vos nouvelles rapidement.
mardi 20 avril 2010 à 14:24:38 | Re : Python, jeu de mémory

Mattmad

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 . De nissez 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 "".
De nissez une fonction remplissage matrice qui va remplir matriceLettres avec les lettres de
A a R. Pour cela, de nissez (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 . De nissez 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 . De nissez 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 . De nissez une fonction dessin grille pour dessinez la grille (voir gure 1.) Pour
cela, on e ectue 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
veri era 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


Cette discussion est classée dans : lettres, for, in, matrice, dicolettres


Répondre à ce message

Sujets en rapport avec ce message

coversion string<-->list [ par john491 ] Bonjour a tous. Je dois creer une petite bibliotheque sur les polynomes ( donc j'ai pas le droit d'utiliser les fonctions predefinies sur les polynome tri de fichier [ par mtanfin ] Bonjour;Alors voilà en fait je voudrais trier des fichiers en fonction de leur date de création. en fait le but est de regarder dans chaque fichier si Python / SQLite / for...in... [ par samylatortue ] Bonjour à tous,je suis face à un problème depuis quelque jours...j'ai une base de donnée dans laquel il y a 2 tables j'aimerais prendre une partie des MemoryLoadLibrary [ par laurent 50 ] Bonjour à tous, Je travail avec la version 2.5.2 de python et avec la version 0.6.9 du module py2exe. La compilation de mon application se déroule san matrice symétrique [ par delaval ] bonjour, je suis actuellement en train d'écrire une fonction symétrique qui renvoie True or False selon la matrice que je rentre. Voici mon code:class décomposition LDU d'une matrice [ par map33 ] Bonjour,nous sommes débutantes en python et un projet de fin de licence nous est demandé sur ce programme.Nous devons trouver le code de la décomposit Problème de tracé d'un histogramme avec matplotlib [ par Boy63 ] Bonjour a tous!Je rencontre un problème avec matplotib pour le tracé d'un histogramme. Je reçois un message d'erreur que je ne comprend pas. Exemple: encodage [ par rezuz ] voila ils se trouve que j'ai un petit problemme dans mon code. j'ais une chaine de caractère avec des carctere unicode donc que je voudrait encodé en paralléliser une simple fonction [ par Viny12 ] Bonjour, Je suis novice en python et j'aimerais savoir comment paralléliser une simple fonction qui calcule une jacobienne de sorte que le calcul pui Charger une matrice d'un fichier [ par Alambiqux ] Bonjour, J'ai des fichiers colonnes de floats et je souhaiterais les charger dans une liste. Et, également,de manière plus général lorsqu'il s'agit d


Nos sponsors


Sondage...

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,076 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales