Isn aide
fatder
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
fatder Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
fatder Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
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
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. |