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   -
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.




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

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?
0
ilyan92 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
comment pouvons nous t'aider dans ta démarche, si tu ne nous l'expliques pas?
Je me demande si tu ne devrais pas commencer par des exercices plus simples.
0
ilyan92 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
vous pouvez me corriger le code , et me dire ou est ce que ça match pas.
0
ilyan92 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
ilyan92 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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
peremption
dans l'instruction
self.peremption-=peremption
.
tu n'expliques pas ce que tu essaies d'obtenir.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ilyan92 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 


ç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>
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
lis bien comment utiliser les balises de code, ce n'est pas encore au point.

pour que ton code soit plus clair, il vaudrait mieux ne pas utiliser le même nom (peremption) comme paramètre dans
def __init__(self, volume, peremption):

et comme attribut dans
self.peremption
0
shanks_91 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour

je voudrais savoir ou t'en est sur ton exercice ?
0