Isn aide
Fermé
fatder
Messages postés
11
Date d'inscription
dimanche 8 février 2015
Statut
Membre
Dernière intervention
15 mai 2017
-
15 mai 2017 à 09:12
fatder Messages postés 11 Date d'inscription dimanche 8 février 2015 Statut Membre Dernière intervention 15 mai 2017 - 15 mai 2017 à 12:41
fatder Messages postés 11 Date d'inscription dimanche 8 février 2015 Statut Membre Dernière intervention 15 mai 2017 - 15 mai 2017 à 12:41
3 réponses
Felice_
Messages postés
265
Date d'inscription
mardi 25 avril 2017
Statut
Membre
Dernière intervention
20 juillet 2017
11
15 mai 2017 à 09:56
15 mai 2017 à 09:56
Bonjour fatder,
Nous ne pouvons vous aidez car nous avons vu aucun code de votre part…
Nous ne pouvons vous aidez car nous avons vu aucun code de votre part…
fatder
Messages postés
11
Date d'inscription
dimanche 8 février 2015
Statut
Membre
Dernière intervention
15 mai 2017
15 mai 2017 à 10:10
15 mai 2017 à 10:10
Je met le code tout de suite
fatder
Messages postés
11
Date d'inscription
dimanche 8 février 2015
Statut
Membre
Dernière intervention
15 mai 2017
15 mai 2017 à 10:12
15 mai 2017 à 10:12
Voici
fatder
Messages postés
11
Date d'inscription
dimanche 8 février 2015
Statut
Membre
Dernière intervention
15 mai 2017
Modifié le 15 mai 2017 à 11:21
Modifié le 15 mai 2017 à 11:21
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. |
Felice_
Messages postés
265
Date d'inscription
mardi 25 avril 2017
Statut
Membre
Dernière intervention
20 juillet 2017
11
15 mai 2017 à 10:21
15 mai 2017 à 10:21
C'est illisible sans la balise code, pensez aussi à préciser le type python, merci.
fatder
Messages postés
11
Date d'inscription
dimanche 8 février 2015
Statut
Membre
Dernière intervention
15 mai 2017
>
Felice_
Messages postés
265
Date d'inscription
mardi 25 avril 2017
Statut
Membre
Dernière intervention
20 juillet 2017
15 mai 2017 à 12:41
15 mai 2017 à 12:41
C'est Python 2.3 . Par contre j ai pas compris la balise . Svp aidez moi je passe demain à l'oral