Jeux morpion en python avec la POO
ilyan92
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
shanks_91 Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
shanks_91 Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
Bonjour, pour coder un programme pour le jeux morpion, je dois suivre des instructions d'un exo et je me retrouve tjts avec des bug, si qlq peut m'aider , cis joint l'exercice et ma solution ratée :
Exercice: Morpion
Définir une classe Case qui contient un seul attribut occupe. Cet attribut prendra automatiquement la valeur ' ' lors de l'instanciation.
Définir dans la classe Case une méthode jouer1 qui donnera la valeur 'X' à l'attribut occupe si la case n'est pas occupée.
Définir dans la classe Case une méthode jouer2 qui donnera la valeur 'O' à l'attribut occupe si la case n'est pas occupée.
Définir une classe Terrain qui compte deux attributs : grille et tour. L'attribut grille est une liste à 9 éléments de type Case. L'attribut tour est un entier qui vaut 1 si c'est au tour du joueur 1 de jouer et 2 si c'est au tour du joueur 2. L'attribut tour sera automatiquement initialisé avec la valeur 1.
Définir dans la classe Terrain la méthode __str__ qui permettra d'utiliser la fonction printsur des objets de cette classe. La fonction print devra afficher dans une première ligne le contenu des cases 0 à 2, puis dans une deuxième ligne le contenu des cases 3 à 5 et enfin dans une troisième ligne le contenu des cases 6 à 8. Les cases seront séparées par le caractère '|' et chaque ligne se terminera par le caractère \n qui correspond au caractère de fin de ligne.
Définir dans la classe Terrain une méthode jouer qui prendra en paramètre un entier allant de 0 à 8. En fonction du joueur à qui il est le tour de jouer, cette méthode fera appel aux méthodes jouer1 ou jouer2 de la case correspondant à l'entier passé en paramètre. Il faudra ensuite modifier la valeur de l'attribut tour pour que le prochain joueur puisse jouer.

Edit: correction des balises de code
Exercice: Morpion
Définir une classe Case qui contient un seul attribut occupe. Cet attribut prendra automatiquement la valeur ' ' lors de l'instanciation.
Définir dans la classe Case une méthode jouer1 qui donnera la valeur 'X' à l'attribut occupe si la case n'est pas occupée.
Définir dans la classe Case une méthode jouer2 qui donnera la valeur 'O' à l'attribut occupe si la case n'est pas occupée.
Définir une classe Terrain qui compte deux attributs : grille et tour. L'attribut grille est une liste à 9 éléments de type Case. L'attribut tour est un entier qui vaut 1 si c'est au tour du joueur 1 de jouer et 2 si c'est au tour du joueur 2. L'attribut tour sera automatiquement initialisé avec la valeur 1.
Définir dans la classe Terrain la méthode __str__ qui permettra d'utiliser la fonction printsur des objets de cette classe. La fonction print devra afficher dans une première ligne le contenu des cases 0 à 2, puis dans une deuxième ligne le contenu des cases 3 à 5 et enfin dans une troisième ligne le contenu des cases 6 à 8. Les cases seront séparées par le caractère '|' et chaque ligne se terminera par le caractère \n qui correspond au caractère de fin de ligne.
Définir dans la classe Terrain une méthode jouer qui prendra en paramètre un entier allant de 0 à 8. En fonction du joueur à qui il est le tour de jouer, cette méthode fera appel aux méthodes jouer1 ou jouer2 de la case correspondant à l'entier passé en paramètre. Il faudra ensuite modifier la valeur de l'attribut tour pour que le prochain joueur puisse jouer.

class Case: def __init (self,occupe=''): self.occupe="" def jouer1 (self): if Case[occupe]=" " : occupe="X" def jouer2 (self): if Case[occupe]=" " : occupe="0" class Terrian: def __init__(self ,grille,tour): self.grille=list(range(9)) self.tour=tour if tour==1: print("c'est au tour du joueur 1 de jouer") if tour ==0: print("c'est au tour du joueur 2 de jouer") def __str__(self): for i in range(3): return self.." | ".__str__() +str(grille[i+3]), end='') print(" 0) 1) 2)") for i in range(3,6): print(" | "+str(grille[i+3]), end='') print(" 0) 1) 2)") for i in range(6,9): print(" | "+str(grille[i+3]), end='') def jouer (self, i in[0:8]):
Edit: correction des balises de code
Configuration: Windows / Firefox 92.0
A voir également:
- Exercice poo python
- Citizen code python avis - Accueil - Outils
- Mot secret python pix ✓ - Forum Python
- \R python ✓ - Forum Python
- Afficher un message sur python "" ✓ - Forum Python
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
6 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
quel est le soucis avec ta solution?
quel est le soucis avec ta solution?
bonjour, mon code bug, je pense que ma démarche est fausse , je ne sais pas si vous avez jeter un coup d'oeil au code que j'ai ecris par rapport a ce qu'on demande dans l’exercice
c'est un travail que je dois rendre aujourd’hui. si vous pouvez m'aider a la corriger ou si vous avez une autre solution . merci d’avance
dans ce code :
class Distributeur:
def __init__(self, taille,objet=[]):
self.taille=taille
self.objet=objet
def ajouter (self,name):
self.objet.append(boissons)
def enlever (self ,i):
self.elnver=object.pop(i)
def verifier (self ):
if peremption >=0 :
print("on garde la boisson")
else :
print('on retire la boisson du distributeur ')
def prochain_jour(self):
self.peremption-=peremption
print("le nombre de jours restant est ",self.peremption-=peremption )
peut on ecrire ainsi :
self.peremption-=peremption
class Distributeur:
def __init__(self, taille,objet=[]):
self.taille=taille
self.objet=objet
def ajouter (self,name):
self.objet.append(boissons)
def enlever (self ,i):
self.elnver=object.pop(i)
def verifier (self ):
if peremption >=0 :
print("on garde la boisson")
else :
print('on retire la boisson du distributeur ')
def prochain_jour(self):
self.peremption-=peremption
print("le nombre de jours restant est ",self.peremption-=peremption )
peut on ecrire ainsi :
self.peremption-=peremption
peux-tu utiliser les balises pour partager du code? https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
je ne vois pas d'où vient
tu n'expliques pas ce que tu essaies d'obtenir.
je ne vois pas d'où vient
peremptiondans l'instruction
self.peremption-=peremption.
tu n'expliques pas ce que tu essaies d'obtenir.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ça vient d'une classe que j'ai créé avant , attribut .
voici la classe :
class Boisson:
def __init__(self, volume, peremption):
self.volume=volume
self.peremption=peremption
def prochain_jour(self):
nombre_jour =self.peremption-1
print(nombre_jour)
Boisson1=Boisson(350,14)
print(Boisson1)
print(Boisson1.volume)
print(Boisson1.peremption)
Boisson1.prochain_jour()
<code python></code>