Isn aide

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. Bonjour fatder,

    Nous ne pouvons vous aidez car nous avons vu aucun code de votre part…
    0
    1. Je met le code tout de suite
      0
      1. Voici
        0
    2. 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. C'est illisible sans la balise code, pensez aussi à préciser le type python, merci.
        0
      2. @Felice_C'est Python 2.3 . Par contre j ai pas compris la balise . Svp aidez moi je passe demain à l'oral
        0

    Discussions similaires

    S isn ou Sti2d sin

    8 réponses