Isn aide

fatder Messages postés 14 Statut Membre -  
fatder Messages postés 14 Statut Membre -
BonSoir , j'ai absolument besoin d'aide s'ils vous plaît. Nous avons notre oral Mardi et nous arrivons pas à achever note projet qui est sur le morpion . Nous sommes un groupe de trois . A. Était responsable de la fenetre / M était responsable du jeu entre humain vs humain / et K du jeu entre Humain vs ordinateur . Mais nous roncentrer de très grosse problèmes lorsque nous rassembler no partie .

3 réponses

  1. Felice_ Messages postés 271 Statut Membre 11
     
    Bonjour fatder,

    Nous ne pouvons vous aidez car nous avons vu aucun code de votre part…
    0
  2. fatder Messages postés 14 Statut Membre
     
    Je met le code tout de suite
    0
    1. fatder Messages postés 14 Statut Membre
       
      Voici
      0
  3. fatder Messages postés 14 Statut Membre
     
    from Tkinter import *
    import Tkinter as tk
    
    
    ################################ maelys #############################    
    def Clic(event):
        global a,C1,C2,C3,C1RC,C1R,C2RC,C2R,C3RC,C3R,L1RC,L1R,L2RC,L2R,L3RC,L3R,L1,L2,L3
        # position du pointeur de la souris
        X = event.x
        Y = event.y
     
        #Si a=1 on met une croix
        if a==1:
            if X < 100:
                if Y < 100:
                    if C1[0]==2:
                        a=0
                        C1[0]=1
                        L1[0]=1
                        Croix(50,50)
                    else :
                            showinfo(title='Non',message='Tu ne peux pas !')
                else :
                    if Y < 200:
                        if C1[1]==2:
                            a=0
                            C1[1]=1
                            L2[0]=1
                            Croix(50,150)
                        else :
                            showinfo(title='Non',message='Tu ne peux pas !')
                    else :
                        if C1[2]==2:
                            a=0
                            C1[2]=1
                            L3[0]=1
                            Croix(50,250)
                        else :
                            showinfo(title='Non',message='Tu ne peux pas !')
     
            if X < 200 and X > 100:
                if Y < 100:
                    if C2[0]==3:
                        a=0
                        C2[0]=1
                        L1[1]=1
                        Croix(150,50)
                    else :
                            showinfo(title='Non',message='Tu ne peux pas !')
                else :
                    if Y < 200:
                        if C2[1]==3:
                            a=0
                            C2[1]=1
                            L2[1]=1
                            Croix(150,150)
                        else :
                            showinfo(title='Non',message='Tu ne peux pas !')
                    else :
                        if C2[2]==3:
                            a=0
                            C2[2]=1
                            L3[1]=1
                            Croix(150,250)
                        else :
                            showinfo(title='Non',message='Tu ne peux pas !')
     
            if X < 300 and X > 200:
                if Y < 100:
                    if C3[0]==4:
                        a=0
                        C3[0]=1
                        L1[2]=1
                        Croix(250,50)
                    else :
                            showinfo(title='Non',message='Tu ne peux pas !')
     
                else :
                    if Y < 200:
                        if C3[1]==4:
                            a=0
                            C3[1]=1
                            L2[2]=1
                            Croix(250,150)
                        else :
                            showinfo(title='Non',message='Tu ne peux pas !')
     
                    else :
                        if C3[2]==4:
                            a=0
                            C3[2]=1
                            L3[2]=1
                            Croix(250,250)
                        else :
                            showinfo(title='Non',message='Tu ne peux pas !')
     
        #Ici a=0 et on met un rond
        else:
            if X < 100:
                if Y < 100:
                    if C1[0]==2:
                        a=1
                        C1[0]=0
                        L1[0]=0
                        Rond(50,50)
                    else :
                            showinfo(title='Non',message='Tu ne peux pas !')
     
                else :
                    if Y < 200:
                        if C1[1]==2:
                            a=1
                            C1[1]=0
                            L2[0]=0
                            Rond(50,150)
                        else :
                            showinfo(title='Non',message='Tu ne peux pas !')
     
                    else :
                        if C1[2]==2:
                            a=1
                            C1[2]=0
                            L3[0]=0
                            Rond(50,250)
                        else :
                            showinfo(title='Non',message='Tu ne peux pas !')
     
            if X < 200 and X > 100:
                if Y < 100:
                    if C2[0]==3:
                        a=1
                        C2[0]=0
                        L1[1]=0
                        Rond(150,50)
                    else :
                            showinfo(title='Non',message='Tu ne peux pas !')
     
                else :
                    if Y < 200:
                        if C2[1]==3:
                            a=1
                            C2[1]=0
                            L2[1]=0
                            Rond(150,150)
                        else :
                            showinfo(title='Non',message='Tu ne peux pas !')
     
                    else :
                        if C2[2]==3:
                            a=1
                            C2[2]=0
                            L3[1]=0
                            Rond(150,250)
                        else :
                            showinfo(title='Non',message='Tu ne peux pas !')
     
            if X < 300 and X > 200:
                if Y < 100:
                    if C3[0]==4:
                        a=1
                        C3[0]=0
                        L1[2]=0
                        Rond(250,50)
                    else :
                            showinfo(title='Non',message='Tu ne peux pas !')
                else :
                    if Y < 200:
                        if C3[1]==4:
                            a=1
                            C3[1]=0
                            L2[2]=0
                            Rond(250,150)
                        else :
                            showinfo(title='Non',message='Tu ne peux pas !')
     
                    else :
                        if C3[2]==4:
                            a=1
                            C3[2]=0
                            L3[2]=0
                            Rond(250,250)
                        else :
                            showinfo(title='Non',message='Tu ne peux pas !')
                     
     
    #ici on créer la fonction pour afficher les ronds
    def Rond(x1,y1):
        global C1,C2,C3
        Canevas.create_oval (x1 - 35, y1 - 35, x1 + 35, y1 + 35, fill = 'red')
        Canevas.create_oval(x1 - 30, y1 - 30, x1+20, y1+20, fill = 'white')
        Verif()
    #ici on créer la fonction pour afficher les croix
    def Croix(x1,y1):
        global C1,C2,C3
        Canevas.create_line(x1-35, y1+35, x1+35, y1-35, width = 5, fill = 'blue')
        Canevas.create_line(x1-35, y1-35, x1+35, y1+35, width = 5, fill = 'blue')
        Verif()
    #ici on créer la fonction qui compte les points
    def Verif():
        global C1, C2,C3,C1RC,C1R,C2RC,C2R,C3RC,C3R,L1RC,L1R,L2RC,L2R,L3RC,L3R,L1,L2,L3
        C1RC = C1.count(1)
        C1R = C1.count(0)
        C2RC = C2.count(1)
        C2R = C2.count(0)
        C3RC = C3.count(1)
        C3R = C3.count(0)
     
        L1RC = L1.count(1)
        L1R = L1.count(0)
        L2RC = L2.count(1)
        L2R = L2.count(0)
        L3RC = L3.count(1)
        L3R = L3.count(0)
     
     
        #ici on affiche le joueur qui a gagner 
        if C1RC == 3:
            showinfo(title='Gagne',message='Joueur 1 a Gagner !')
        if C1R == 3:
            showinfo(title='Gagne',message='Joueur 2 a Gagner !')
        if C2RC == 3:
            showinfo(title='Gagne',message='Joueur 1 a Gagner !')
        if C2R == 3:
            showinfo(title='Gagne',message='Joueur 2 a Gagner !')
        if C3RC == 3:
            showinfo(title='Gagne',message='Joueur 1 a Gagner !')
        if C3R == 3:
            showinfo(title='Gagne',message='Joueur 2 a Gagner !')
     
        if C1[0]==1 and C2[1]==1 and C3[2]==1: 
            showinfo(title='Gagne',message='Joueur 1 a Gagner !')
        if C1[2]==1 and C2[1]==1 and C3[0]==1: 
            showinfo(title='Gagne',message='Joueur 1 a Gagner !')    
     
        if C1[0]==0 and C2[1]==0 and C3[2]==0: 
            showinfo(title='Gagne',message='Joueur 2 a Gagner !')
        if C1[2]==0 and C2[1]==0 and C3[0]==0: 
            showinfo(title='Gagne',message='Joueur 2 a Gagner !')  
     
        if L1RC == 3:
            showinfo(title='Gagne',message='Joueur 1 a Gagner !')
        if L1R == 3:
            showinfo(title='Gagne',message='Joueur 2 a Gagner !')
        if L2RC == 3:
            showinfo(title='Gagne',message='Joueur 1 a Gagner !')
        if L2R == 3:
            showinfo(title='Gagne',message='Joueur 2 a Gagner !')
        if L3RC == 3:
            showinfo(title='Gagne',message='Joueur 1 a Gagner !')
        if L3R == 3:
            showinfo(title='Gagne',message='Joueur 2 a Gagner !')
     
     
    #ici on initialise les colones et les lignes
     
    C1RC,C1R,C2RC,C2R,C3RC,C3R,L1RC,L1R,L2RC,L2R,L3RC,L3R = 0,0,0,0,0,0,0,0,0,0,0,0
     
     
     
    a=1
     
    C1=[2,2,2]
    L1=[2,2,2]
     
    C2=[3,3,3]
    L2=[3,3,3]
     
    C3=[4,4,4]
    L3=[4,4,4]
     
    print(C1)
    
    ############################amel######################"
    
    # Création de la fenêtre principale
    Mafenetre = Tk()
    Mafenetre.title("Morpion par MKA")
    # Création d'un widget Canvas
    Largeur = 300
    Hauteur = 300
    
    Canevas = Canvas(Mafenetre, width = Largeur, height =Hauteur, bg ="white")
    # La méthode bind() permet de lier un événement avec une fonction :
    # un clic gauche sur la zone graphique provoquera l'appel de la fonction utilisateur Clic()
    Canevas.bind("<Button-1>", Clic)
    Canevas.pack(padx =5, pady =5)
    #ici on créer les lignes qui délimite les colones et les cases
    Canevas.create_line(105, 10, 105, 290, width = 5)
    Canevas.create_line(205, 10, 205, 290, width = 5)
    Canevas.create_line(10, 105, 290, 105, width = 5)
    Canevas.create_line(10, 205, 290, 205, width = 5)
    
    
    mainmenu = tk.Menu(Mafenetre)
     
    menuOptions = tk.Menu(mainmenu)  ## Menu Fils
    menuOptions.add_command(label = "Recommencer" , command = Mafenetre.quit)
    
    menuOptions.add_command(label = "Quitter" , command = Mafenetre.destroy)
    
     
    menuModes = tk.Menu(mainmenu) ## Menu Fils
    menuModes.add_command(label = "1 joueurs", command =Clic)
    menuModes.add_command(label = "2 joueurs", command =Clic) 
    
    
     
    mainmenu.add_cascade(label = "Options", menu = menuOptions)
    mainmenu.add_cascade(label = "Modes", menu = menuModes)
    
    #######################################kader########################################
    
    class Joueur():
     
        def __init__(self, nom, num, pion, typejoueur):
            self.setName(nom)  # nom du joueur. Ex: "joueur1", "joueur2", ...
            self.num = num  # numéro du joueur. Ex: 0 pour joueur1, 1 pour joueur2, etc...
            self.pion = pion  # forme de pion affecté
            self.typejoueur = typejoueur  # type de joueur: 0 = ordinateur, 1 = humain
            self.stop = False  # drapeau pour stopper le thread à la demande du programme principal
     
        def run(self):
            # accès aux variables globales
            global verrou # verrou d'accès aux variables globales
            global okjoue  # drapeau donnée par le programme principal qui permet au joueur de jouer
            global cdcoups  # compteur de coups
            global premier  # désigne le numéro du joueur qui a joué en premier
            global nbjoueurs  # nombre de joueurs du jeu
            global aide  # dit si l'affichage d'une aide est demandé
     
            while not self.stop:  # tant que le jeu n'est pas terminé
     
                ##### => chaque joueur attend son tour pour jouer
                while True:
                    # on prend le verrou d'accès aux variables globales
                    verrou.acquire()
                    if self.stop:
                        # jeu terminé. on sort de la boucle, mais en conservant le blocage du verrou
                        break
                    if okjoue and (cdcoups+premier)%nbjoueurs==self.num:
                        # = ça y est, on peut jouer, mais on conserve le verrou jusqu'à la fin du coup
                        break
                    # on libère le verrou pour que les autres joueurs accédent aussi aux variables globales
                    verrou.release()
     
                ##### => le joueur en cours joue
     
                if not self.stop:
                    if self.typejoueur==0:
                        # c'est un joueur "ordinateur" qui joue
                        if self.pion=='X':
                            pionautre='O'
                        else:
                            pionautre='X'
                        print
                        print self.getName() + " joue ('" + self.pion + "' contre '" + pionautre + "')"
                        self.chx = ajouer(self.pion)
                        print self.getName() + " joue case: ",self.chx
                        grille[self.chx[0]][self.chx[1]]=self.pion
                        time.sleep(0.1)
                    else:
                        # c'est un joueur "humain" qui joue
                        if self.pion=='X':
                            pionautre='O'
                        else:
                            pionautre='X'
                        print
                        print self.getName() + " joue ('" + self.pion + "' contre '" + pionautre + "')"
                        self.chx = ajouer(self.pion)
                        ch=self.getName() + " joue case: "
                        if aide:
                            ch = self.getName() + " joue case " + str(self.chx) + ": "
                        else:
                            ch = self.getName() + " joue case (ligne,colonne):"
                        while True:
                            self.coup = raw_input(ch)
                            if aide and self.coup=="":
                                # ici, le jour a choisi le coup proposé
                                grille[self.chx[0]][self.chx[1]]=self.pion
                                break
                            try:
                                # ici, le joueur a entré un choix ligne,colonne
                                x = eval(self.coup)
                                if ((type(x)==list or type(x)==tuple) and len(x)==2) \
                                        and (x[0] in [0,1,2]) and (x[1] in [0,1,2]) \
                                            and grille[x[0]][x[1]]==' ':
                                    grille[x[0]][x[1]]=self.pion
                                    break
                            except:
                                # ici, le choix entré n'est pas correct
                                pass
     
                ##### => fin du coup du joueur en cours
     
                # le joueur repasse la main au programme principal après chaque coup
                okjoue = False
     
                # on libère le verrou d'accès aux variables globales
                verrou.release()
     
                # et fin du thread si c'est demandé (sinon, attente du prochain coup)
                if self.stop:
                    break
     
    def stopper(self):
            self.stop = True
    
    
    
    Mafenetre.config(menu=mainmenu)
    Mafenetre.mainloop()

    EDIT : Ajout des balises de code (la coloration syntaxique).
    Explications disponibles ici : ICI

    Merci d'y penser dans tes prochains messages.
    0
    1. Felice_ Messages postés 271 Statut Membre 11
       
      C'est illisible sans la balise code, pensez aussi à préciser le type python, merci.
      0
      1. fatder Messages postés 14 Statut Membre > Felice_ Messages postés 271 Statut Membre
         
        C'est Python 2.3 . Par contre j ai pas compris la balise . Svp aidez moi je passe demain à l'oral
        0