Puissance 4 python tkinter
Résolu/Fermé
SchweppesTheBest
Messages postés
3
Date d'inscription
mercredi 5 février 2020
Statut
Membre
Dernière intervention
5 février 2020
-
Modifié le 7 févr. 2020 à 09:09
mamiemando Messages postés 33582 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 mars 2025 - 7 févr. 2020 à 09:27
mamiemando Messages postés 33582 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 mars 2025 - 7 févr. 2020 à 09:27
A voir également:
- Puissance 4 python corrigé
- +33 4 24 00 36 81 ✓ - Forum Mobile
- Test puissance pc - Guide
- Puissance en c++ - Forum C++
- Transmath 3eme corrigé pdf ✓ - Forum Études / Formation High-Tech
- Puissance en c ✓ - Forum C
1 réponse
mamiemando
Messages postés
33582
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
17 mars 2025
7 833
7 févr. 2020 à 09:27
7 févr. 2020 à 09:27
Bonjour
Plusieurs conseils préalables
Passons à ta question
Moi j'aurais par exemple écrit :
Exemples :
Bonne chance
Plusieurs conseils préalables
- Concernant le message, soigne l'orthographe et utilise les balises de code (4e bouton) afin de le mettre en forme
- N'utilise pas de variable globale. C'est une très mauvaise habitude de programmation. Passe simplement tes variables globales actuelles comme des paramètres de fonction
- Suis les conventions PEP8 (autant prendre les bonnes habitudes) pour avoir un programme propre. Si tu utilises pycharm il te guidera.
- Pas réellement besoin d'avoir une interface Tk pour expliquer ton problème (tu aurais pu faire un puissance 4 en mode texte). Généralement il est bon de séparer le moteur du jeu (qui stocke le placement des pions, les règles...) du rendu (en mode texte, en mode graphique).
Passons à ta question
- La manière dont tu installes un pion sur le plateau est améliorable / incomplète. Un while serait plus approprié. À colonne donnée, tant que la case est occupée, on monte d'un cran. Si la case ne dépasse pas le haut du plateau, alors on peut installer le pion dans cette case. Sinon, on refuse le placement du jeton.
- La recherche de victoire consiste à chercher une ligne / colonne / diagonale peut se faire de plusieurs façon. Déjà il n'est utile de faire cette recherche que pour le joueur courant. La manière la plus simple de procéder en python est d'utiliser l'inclusion. Il suffit d'appliquer le raisonnement suivant. Pour chaque ligne (resp. colonne, resp. diagonale), tu extraies la liste
l
de cases correspondantes. Cela te donne une liste d'entiers. En admettant que le joueur courant soitj = 1
, le problème revient à chercher la sous-liste[j, j, j, j]
dansl
. Pour cela tu peux chercher comment faire sur internet (par exemple cette page) ou écrire toi-même une petite boucle.
Moi j'aurais par exemple écrit :
def find_sublist(sl, l): n = len(sl) for i in range(len(l)): if sl == l[i:i+n]: return True return False
Exemples :
In [3]: find_sublist([1, 1, 1, 1], [0, 0, 1, 1, 1, 1, 0, 0])
Out[3]: True
In [4]: find_sublist([1, 1, 1, 1], [0, 0, 1, 1, 0, 1, 0, 0])
Out[4]: False
Bonne chance