(Python) Morpion en poo, besoin d'aide svp !
Résolu
A voir également:
- Python morpion
- Citizen code python avis - Accueil - Outils
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
- Mot secret python pix ✓ - Forum Python
- Python generator - Télécharger - Sécurité
- Python par la pratique : 101 exercices corrigés pdf - Forum Python
1 réponse
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