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

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

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