Python, jeu de memory
Mattd50
-
Jean Airienafoutre -
Jean Airienafoutre -
Bonjour, je suis en train de plancher sur un jeu de mémory sur python ( pour un partiel :/ ) , donc je suis en train de suivre les instructions, à savoir :
Question 1 . Définissez les variables globales n que vous initialiserez à 6 et la matrice
matriceLettres qui contient n lignes et n colonnes, chacune des cases de la matrice contiendra
la chaîne vide "".
Définissez une fonction remplissage matrice qui va remplir matriceLettres avec les lettres de
A à R. Pour cela, définissez (dans la fonction) une liste lettres qui contiendra toutes les lettres.
Construisez un dictionnaire dicoLettres où les clefs sont les lettres de A à R et la valeur est 2
pour chaque clef. Remplissez toutes les cases de la matrice en tirant à chaque fois aléatoirement
une lettre dans le dictionnaire. N'oubliez pas de mettre à chaque fois à jour le dictionnaire.
donc pour le coup j'ai fais ça :
def matriceLettres():
n=6
matrice=n*[0]
for i in range(len(matrice)):
matrice[i] = n*[0]
from random import*
def remplissage_matrice(matrix):
dicoLettres={}
lettres=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R"]
matrix=matriceLettres()
for i in lettres:
dicoLettres[i]=2
for a in range(6):
for b in range(6):
c=lettres[randrange(17)]
dicoLettres[c]=dicoLettres[c]-1
if dicoLettres[c]>=0:
matrix[a][b]=c
return matrix
mais il semblerait que cela ne fonctionne pas ... Si quelqu'un pouvait m'éclairer assez rapidement, je lui en serais gré. ( Pour info, j'utilise Python2.6 sur conseil de la prof.)
Question 1 . Définissez les variables globales n que vous initialiserez à 6 et la matrice
matriceLettres qui contient n lignes et n colonnes, chacune des cases de la matrice contiendra
la chaîne vide "".
Définissez une fonction remplissage matrice qui va remplir matriceLettres avec les lettres de
A à R. Pour cela, définissez (dans la fonction) une liste lettres qui contiendra toutes les lettres.
Construisez un dictionnaire dicoLettres où les clefs sont les lettres de A à R et la valeur est 2
pour chaque clef. Remplissez toutes les cases de la matrice en tirant à chaque fois aléatoirement
une lettre dans le dictionnaire. N'oubliez pas de mettre à chaque fois à jour le dictionnaire.
donc pour le coup j'ai fais ça :
def matriceLettres():
n=6
matrice=n*[0]
for i in range(len(matrice)):
matrice[i] = n*[0]
from random import*
def remplissage_matrice(matrix):
dicoLettres={}
lettres=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R"]
matrix=matriceLettres()
for i in lettres:
dicoLettres[i]=2
for a in range(6):
for b in range(6):
c=lettres[randrange(17)]
dicoLettres[c]=dicoLettres[c]-1
if dicoLettres[c]>=0:
matrix[a][b]=c
return matrix
mais il semblerait que cela ne fonctionne pas ... Si quelqu'un pouvait m'éclairer assez rapidement, je lui en serais gré. ( Pour info, j'utilise Python2.6 sur conseil de la prof.)
A voir également:
- Jeu memory python
- Windows memory cleaner - Télécharger - Optimisation
- 94 jeu - Télécharger - Puzzle & Réflexion
- Citizen code python avis - Accueil - Outils
- Windows memory diagnostic - Télécharger - Optimisation
- 94 degrés jeu - Télécharger - Divers Jeux
5 réponses
tu pourrais SVP mettre ton code sous la forme "code" pour voir ton indentation
et si tu pouvais mettre le message d'erreur que ça te génère ça pourrait aider
essaies comme ça, je pense que ça doit mieux fonctionner car:
- tu appelais la fonction matriceLettres() mais elle ne retournais rien
- tu remplissais matrix qui venait de je ne sais où alors que tu voulais remplir matrice que tu venit de créer non?
et si tu pouvais mettre le message d'erreur que ça te génère ça pourrait aider
essaies comme ça, je pense que ça doit mieux fonctionner car:
- tu appelais la fonction matriceLettres() mais elle ne retournais rien
- tu remplissais matrix qui venait de je ne sais où alors que tu voulais remplir matrice que tu venit de créer non?
def matriceLettres(): n=6 matrice=n*[""] for i in range(len(matrice)): matrice[i] = n*[""] return matrice def remplissage_matrice(): dicoLettres={} lettres=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R"] matrice=matriceLettres() for i in lettres: dicoLettres[i]=2 for a in range(6): for b in range(6): c=lettres[randrange(17)] if dicoLettres[c]>=0: matrice[a][b]=c return matrice
mais en réessayant, avec cette ligne, j'ai pu constater que j'avais des blancs dans mes sous-listes.
pour les '' c'est normal car si tu te trouve dans le cas d'un else, ben il fait rien et passe à la case suivante
je regarde ça plus tard
Edit: Voilà normalement ça doit fonctionner maintenant: