Morpion en python
Résolu/Fermé
Vicoumich
Messages postés
31
Date d'inscription
lundi 8 mai 2017
Statut
Membre
Dernière intervention
26 août 2020
-
21 août 2020 à 15:07
Vicoumich Messages postés 31 Date d'inscription lundi 8 mai 2017 Statut Membre Dernière intervention 26 août 2020 - 26 août 2020 à 15:53
Vicoumich Messages postés 31 Date d'inscription lundi 8 mai 2017 Statut Membre Dernière intervention 26 août 2020 - 26 août 2020 à 15:53
A voir également:
- Morpion python tkinter
- Citizen code python - Accueil - Outils
- Ce programme est écrit en python ✓ - Forum Python
- Trouver la position d'un élément dans une liste python ✓ - Forum Python
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
6 réponses
yg_be
Messages postés
23318
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
11 novembre 2024
Ambassadeur
1 552
21 août 2020 à 20:44
21 août 2020 à 20:44
bonjour, peux-tu être plus précis? est-ce le test en ligne 298 qui ne fait pas ce que tu imagines?
Vicoumich
Messages postés
31
Date d'inscription
lundi 8 mai 2017
Statut
Membre
Dernière intervention
26 août 2020
22 août 2020 à 19:34
22 août 2020 à 19:34
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)
yg_be
Messages postés
23318
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
11 novembre 2024
1 552
22 août 2020 à 20:59
22 août 2020 à 20:59
quel est l'appel qui ne retourne pas le résultat attendu? tu peux ajouter des print() pour détecter cela.
Vicoumich
Messages postés
31
Date d'inscription
lundi 8 mai 2017
Statut
Membre
Dernière intervention
26 août 2020
22 août 2020 à 23:48
22 août 2020 à 23:48
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.
yg_be
Messages postés
23318
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
11 novembre 2024
1 552
23 août 2020 à 08:44
23 août 2020 à 08:44
si tu veux corriger le programme que tu as écrit, tu pourrais choisir une des fonctions verif qui posent problème, et y ajouter des print pour comprendre ce qu'elle fait.
Vicoumich
Messages postés
31
Date d'inscription
lundi 8 mai 2017
Statut
Membre
Dernière intervention
26 août 2020
25 août 2020 à 23:49
25 août 2020 à 23:49
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
quent217
Messages postés
421
Date d'inscription
vendredi 25 septembre 2015
Statut
Membre
Dernière intervention
1 mars 2024
346
26 août 2020 à 00:08
26 août 2020 à 00:08
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 ?
yg_be
Messages postés
23318
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
11 novembre 2024
1 552
26 août 2020 à 09:36
26 août 2020 à 09:36
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.
Vicoumich
Messages postés
31
Date d'inscription
lundi 8 mai 2017
Statut
Membre
Dernière intervention
26 août 2020
26 août 2020 à 15:53
26 août 2020 à 15:53
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é.
Vicoumich
Messages postés
31
Date d'inscription
lundi 8 mai 2017
Statut
Membre
Dernière intervention
26 août 2020
26 août 2020 à 15:50
26 août 2020 à 15:50
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