Jeux Morpion sous Python (projet ISN)

Crazy -  
 Utilisateur anonyme -
Bonjour,

Je réalise un morpion sous python pour mon projet d'ISN de terminale S (pour le bac)

Je me vois obligé de terminer le projet chez moi, j'ai donc installé la même version de python que celle qui était à mon lycée et j'ai terminé de recopier le code.

Cependant quand je fais 'Run Module', après avoir corrigé mes erreurs de syntaxes, j'ai bien la fenetre Python Shell qui s'ouvre, n'indiquant aucune erreur et pourtant la fenetre de mon jeu ne se lance pas.. Je ne comprend vraiment pas :/

Si quelqu'un pourrrait m'aider ça serai très gentil, je laisse le code ci dessous :

from tkinter import *
from tkinter.messagebox import *
def Clic(event):
global a,C1,C2,C3,A1,A2,A3,A4,A5,A6,B1,B2,B3,B4,B5,B6,L1,L2,L3,c,can,x1,y1
#position du pointeur de la souris
X = event.x
Y = event.y

#Si a=1 on met une croix
if a==1:
if X < 200:
if Y < 200:

if C1[0] == 2:
a=0
C1[0]=1
L1[0]=1
Croix(100,100)

else:
showinfo(title='Non',message='Tu ne peux pas !')

elif Y < 400:
if C1[1]==1:
a=0
C1[1]=1
L2[0]=1
Croix(100,300)
else:
showinfo(title='Non',message='Tu ne peux pas!')
else:
if C1[2] == 2:
a=0
C1[2]=1
L3[0]=1
Croix(100,500)
else:
showinfo(title='Non',message='Tu ne peux pas!')

if X < 400 and X > 200:
if Y < 200:
if C2[0] == 3:
a=0
C2[0]=1
L1[1]=1
Croix(300,100)
else:
showinfo(title='Non',message='Tu ne peux pas!')
elif Y < 400:
if C2[1]==3:
a=0
C2[1]=1
L2[1]=1
Croix(300,300)
else:
showinfo(title='Non',message='tu ne peux pas !')
else:
if C2[2]==3:
a=0
C2[2]=1
L3[1]=1
Croix(300,500)
else:
showinfo(title='non',message='tu ne peux pas!')
if X < 600 and X > 400:
if Y < 200:
if C3[0]==4:
a=0
C3[0]=1
L1[2]=1
Croix(500,100)
else:
showinfo(title='non',message='tu ne peux pas!')
elif Y < 400:
if C3[1]==4:
a=0
C3[1]=1
L2[2]=1
Croix(500,300)
else:
showinfo(title='non',message='tu ne peux pas!')
else:
if C3[2]==4:
a=0
C3[2]=1
L3[2]=1
Croix(500,500)
else:
showinfo(title='non',message='tu ne peux pas!')
c+=1

#a=0 on met un rond
else:
if X < 200:
if Y< 200:
if C1[0] == 2:
a=1
C1[0]=0
L1[0]=0
Rond(100,100)
else:
showinfo(title='Non',message='Tu ne peux pas !')
elif Y < 400:
if C1[1] == 2:
a=1
C1[1]=0
L2[0]=0
Rond(100,300)
else:
showinfo(title='Non',message='Tu ne peux pas!')
else:
if C1[2] == 2:
a=1
C1[1]=0
L3[0]=0
Rond(100,500)
else:
showinfo(title='Non',message='Tu ne peux pas!')

if X < 400 and X > 200:
if Y < 200:
if C2[0] == 3:
C2[0]=0
L1[1]=0
Rond(300,100)
else:
showinfo(title='Non',message='Tu ne peux pas!')
elif Y < 400:
if C2[1] == 3:
a=1
C2[1]=0
L2[1]=0
Rond(300,300)
else:
showinfo(title='Non',message='Tu ne peux pas!')
else:
if C2[2] == 3:
a=1
C2[2]=0
L3[1]=0
Rond(300,500)
else:
showinfo(title='Non',message='Tu ne peux pas!')

if X < 600 and X > 400:
if Y < 200:
if C3[0] == 4:
a=1
C3[0]=0
L1[2]=0
Rond(500,100)
else:
showinfo(title='Non',message='Tu ne peux pas!')
elif Y < 400:
if C3[1] == 4:
a=1
C3[1]=0
L2[2]=0
Rond(500,300)
else:
showinfo(title='Non',message='tu ne peux pas !')
else:
if C3[2] == 4:
a=1
C3[2]=0
L3[2]=0
Rond(500,500)
else:
showinfo(title='non',message='tu ne peux pas !')
c+=1

#ici on crée la fonction pour afficher les ronds
def Rond(x1,y1):
global C1,C2;C3
can.create_oval(x1-90,y1-90,x1+90,y1+90,fill="blue",width=5)
Verif()
#ici on crée la fonction pour afficher les croix
def Croix(x1,y1):
globalC1,C2,C3
can.create_line(x1-90,y1-90,x1+90,y1+90,fill="blue",width=5) and can.create_line(x1+90,y1-90,x1-90,y1+90,fill="blue",width=5)
Verif()
#ici on crée la fonction qui compte les points
def Verif():
global C1,C2,C3,A1,A2,A3,A4,A5,A6,B1,B2,B3,B4,B5,B6,L1,L2,L3,x1,y1

A1=C1.count(1)
A2=C1.count(0)
A3=C2.count(1)
A4=C2.count(0)
A5=C3.count(1)
A6=C3.count(0)

B1=L1.count(1)
B2=L1.count(0)
B3=L2.count(1)
B4=L2.count(0)
B5=L3.count(1)
B6=L3.count(0)

#on affiche le joueur qui a gagné
if A2==3 or B2==3 or A4==3 or B4==3 or A6==3 or B6==3:
showinfo(title='Gagne',message='Joueur 2 a gagné !')
if B1==3 or A1==3 or B3==3 or A3==3 or B5==3 or A5==3:
showinfo(title='Gagne',message='Joueur 1 a gagné !')
if C1[0]==1 and C2[1]==1 and C3[2]==1 or C1[2]==1 and C2[1]==1 and C3[0]==1:
showinfo(title='Gagne',message='Joueur 1 a gagné !')
if C1[0]==0 and C2[1]==0 and C3[2]==0 or C1[2]==0 and C2[1]==0 and C3[0]==0:
showinfo(title='Gagne',message='Joueur 2 a gagné !')
if c == 8:
showinfo(tile='Nul',message='Match Nul')
#on initialise les colones et les lignes
def fenetremorp():
global a,C1,C2,C3,A1,A2,A3,A4,A5,A6,B1,B2,B3,B4,B5,B6,L1,L2,L3,c,can,x1,y1
a=1
c=0

C1=[2,2,2]
L1=[2,2,2]

C2=[3,3,3]
L2=[3,3,3]

C3=[4,4,4]
L3=[4,4,4]

fenetre=Tk() #on définit la fenetre grapghique
fenetre.resizable(width=False,height=False) #on empeche la modification de la taille de la fenetre
fenetre.itle('Morpion')

x1,x2,y1,y2=200,200,0,600
x3,x4,y3,y4=400,400,0,600
x5,x6,y5,y6=0,600,200,200
x7,x8,y7,y8=0,600,400,400

can=canvas(fenetre,bg='white',height=600,width=600) #on définit les paramètres de la fenetre
#bind() permet de lier l'evenement à une fonction, ici un clic gauche dans la fenetre graphique est associé à la fonction Clic()
can.bind("<Button-1>",Clic)
can.pack(padx = 5, pady = 5)

#on crée les lignes pour faire le plateau de jeu
can.create_line(x1,y1,x2,y2,fill='blue',width=5),can.create_line(x3,y3,x4,y4,fill='blue',width=5),can.create_line(x5,y5,x6,y6,fill='blue',width=5),can.create_line(x7,y7,x8,y8,fill='blue',width=5)
#on crée un widget pour le boutton Quitter
Button(fenetre,text='Quitter',command=fenetre.destroy).pack(side=LEFT,padx=5,pady=5)
fenetre.mainloop

A voir également:

1 réponse

Utilisateur anonyme
 
Tu pourrais éditer ton message pour insérer ton code dans les balises de code python disponibles ?

De ce que je vois :
fenetre.mainloop


La fonction mainloop de fenetre n'est pas appelée ici. Ce serait plutôt :
fenetre.mainloop()


Etrange que cela ne lève pas d'erreur.
0