(Python) Morpion en poo, besoin d'aide svp !
Résolu/Fermé
Majarbuda
Messages postés
45
Date d'inscription
dimanche 19 mai 2019
Statut
Membre
Dernière intervention
3 novembre 2022
-
Modifié le 4 nov. 2022 à 10:15
mamiemando Messages postés 33333 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 31 octobre 2024 - 4 nov. 2022 à 10:31
mamiemando Messages postés 33333 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 31 octobre 2024 - 4 nov. 2022 à 10:31
A voir également:
- Morpion python
- Citizen code python - Accueil - Outils
- 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
- Ce programme est écrit en python ✓ - Forum Python
1 réponse
mamiemando
Messages postés
33333
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
31 octobre 2024
7 800
4 nov. 2022 à 10:31
4 nov. 2022 à 10:31
Bonjour,
Bien sûr, il faut dans ta tête découpler les variables qui te permettent d'itérer et ce que tu en fais.
class Case: def __init__(self, i, j, value): self.i = i self.j = j self.value = value def __repr__(self): return f"{self.__class__.__name__}<{self.i}, {self.j}, {self.value}>" class Plateau(list): pass plateau = [ Case(i, j) for i in range(3) for j in range(3) ] print(plateau)
[self.__class__.__name__<0, 0, None>, self.__class__.__name__<0, 1, None>, self.__class__.__name__<0, 2, None>, self.__class__.__name__<1, 0, None>, self.__class__.__name__<1, 1, None>, self.__class__.__name__<1, 2, None>, self.__class__.__name__<2, 0, None>, self.__class__.__name__<2, 1, None>, self.__class__.__name__<2, 2, None>]
Bon ceci dit, ce n'est pas une manière très pratique de stocker un plateau de morpion. C'est plus au plateau de te fournir une primitive qui te permet de retrouver l'état de la case (i, j) et une structure de dictionnaire (ou une matrice 2D faite avec un np.array) qui associe à chaque couple (i, j) son état serait bien plus pratique...
Car ici, tu vas être obligé de chercher dans ton plateau l'instance de Case qui coïncide avec la case qui t'intéresse, ce qui est peu pratique...
class Plateau(list): def find_case(self, i, j): for case in self: if case.i == i and case.j == j: return case return None print(plateau.find_case(1, 2))
Bonne chance