Morpion en python
Résolu
Vicoumich
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
-
Vicoumich Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
Vicoumich Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Exercice python morpion
- Citizen code python avis - Accueil - Outils
- Mot secret python pix ✓ - Forum Python
- \R python ✓ - Forum Python
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
- Afficher un message sur python "" ✓ - Forum Python
6 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, peux-tu être plus précis? est-ce le test en ligne 298 qui ne fait pas ce que tu imagines?
Oui c'est ça, enfaite j'i de nombreuse fonction qui vérifie tous les alignements possibles, si par exemple il y a un alignement en ligne, la fonction verif_ligne va retourner le numero associer au joueur ou au bot, s'il n'y aucun alignement, les fonctions de verification retournent toutes 0. Ce que fais la fonction bigue_verif, c'est contenir ce que toutes les fonctions retournent dans une liste et si le numero associé au joueur est dans la liste c'est que le joueur a gagné. Or la fonction bigue_verif qui est appelé, elle ne donne pas le résultat attendu, elle fonctionne parfaitement lorsqu'il y a un alignement mais dis qu'il y a un alignement quand il n'y en a pas. (merci beaucoup pour votre aide dans mon projet elle m'est précieuse)
J'ai bien compris quel appelle fonctionnait mal, c'est quand j'appelle bigue_verif aux lignes 66 et 42. J'ai rajouté des print pour voir ce que contient la liste dans bigue verif lorsque le jeu bug, et je peu donc voir quelle verif a un probleme, or la verif qui a un problème change en fonction de parties, il y a meme des fois ou 2 verfi sont validées alors qu'acune ne devrait l'être ( j'ai peu être oublié de préciser que ces bugs n'arrivent pas lorsque la grille fait par exemple 3x3 cases ). Je ne sais pas si cela réponds à votre question.
Bonsoir cela fait plusieurs jours que je ne trouve pas de réponse malgré mes tentative... J'ai demandé à ma cousine qui s'y connait pas mal en python mais je n'ai pas été débloqué, si vous avez une piste je la veux bien.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
je n'ai pas regardé le code en détail mais les fonctions de vérifications me semblent étonnantes.
À la ligne 152 il y a une boucle mais la variable z n'est jamais utilisée, quel est l'interet ?
Ensuite vous vérifiez 2 cases aux lignes 153 et 154 mais normalement pour gagner au morpion il faut aligner 3 cases non ?
Et puis si j'ai bien compris vous avez fait une extension du morpion pour jouer sur des grilles plus grandes que 3x3 mais du coup pourquoi il y a uniquement les fonctions verif_ligne_1, verif_ligne_2 et verif_ligne_3 ? Les lignes suivantes ne sont pas vérifiées pour des grilles plus grandes que 3x3 ? Ne serait-ce pas plus simple de faire une boucle qui vérifie chaque ligne une par une ?
je n'ai pas regardé le code en détail mais les fonctions de vérifications me semblent étonnantes.
À la ligne 152 il y a une boucle mais la variable z n'est jamais utilisée, quel est l'interet ?
Ensuite vous vérifiez 2 cases aux lignes 153 et 154 mais normalement pour gagner au morpion il faut aligner 3 cases non ?
Et puis si j'ai bien compris vous avez fait une extension du morpion pour jouer sur des grilles plus grandes que 3x3 mais du coup pourquoi il y a uniquement les fonctions verif_ligne_1, verif_ligne_2 et verif_ligne_3 ? Les lignes suivantes ne sont pas vérifiées pour des grilles plus grandes que 3x3 ? Ne serait-ce pas plus simple de faire une boucle qui vérifie chaque ligne une par une ?
c'est assez mal programmé, mais le programme ne vérifie pas l'ensemble du jeu, il ne vérifie que la ligne, la colonne, et les diagonales (si elles existent) du dernier jeton placé.
l'idée est bonne, la programmation ne l'est pas.
avant de l'étendre à plus de 3*3, il faudrait réécrire cela complètement.
pour la vérification de la ligne, il faudrait écrire une seule fonction
l'idée est bonne, la programmation ne l'est pas.
avant de l'étendre à plus de 3*3, il faudrait réécrire cela complètement.
pour la vérification de la ligne, il faudrait écrire une seule fonction
verif_ligne (self,x,y), qui vérifie la ligne complète, en tenant compte de sa dimension, bien sûr.
Les fonctions verifs_ligne_1,2,3... ne sont pas pour les ligne 1,2 et trois mais bein pour les allignement sur un quelconque ligne/colonne/diagonale et si on ne vérifie que 2 case c'est car on a comme argument les cordonnées du dernier coup joué donc toute les verif sont en fonction du dernier coup joué.
Bonjour, j'ai finalement résolu le problème qui venait du fait que les indexes de liste peuvent être négatifs et que du coup ca part de la fin pour sélectionner la valeur demandée. Or j'ignorait totalement cela. Pour ce que est de revoir l'écriture de mon code je compte le faire quand j'aurais plus de temps mais je le ferais car on m'a beaucoup dit qu'il n'était vraiment pas beau. Merci pour votre réponse un fois de plus