Projet ISN - Motus sous Python
LisaZoeChloe
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonsoir à tous,
Nous sommes en Terminale S spécialité ISN, et nous avons choisi de présenter comme programme une version maison du jeu Motus, renommé pour cela Motuth.
Seulement, nous avons plusieurs problèmes : tout d'abord, une fois que l'utilisateur a trouvé le bon mot, ou qu'il a épuisé toutes ses chances de trouver le bon mot, nous n'arrivons pas à faire afficher une nouvelle grille de jeu (le problème se trouve de la ligne 88 à la ligne 236). Ensuite, nous avons du mal à intégrer une variable score (appelée ici s), qui compterait le nombre de points en fonction du nombre de grilles réussies, problème lié au fait que nous n'arrivons pas à faire une nouvelle grille (lignes 258 à 306). Enfin, le jeu démarre par une animation sous forme de GIF (que vous ne pourrez sûrement pas visualiser puisque vous ne disposez pas des images nécessaires, il vous faudra donc supprimer cette partie pour tester le jeu, je suppose), que nous souhaiterions fermer en cliquant simplement dessus, ce que nous n'arrivons pas à faire.
Nous sommes conscientes de demander beaucoup, mais chaque réponse nous sera précieuse.
Merci d'avance,
Lisa, Zoé, Chloé, trois élèves en détresse
from tkinter import *
import random
import time
trouve = False
a=1
s=0 #score
v=3 #vies
# PSEUDO -----------------------------------------------------------------------
def fetch():
global nom
nom=ent.get()
recap.configure(text='Votre pseudo est : '+ent.get())
ent.delete(0,END)
score=s
resultats=open('scores','r')
r=resultats.read().split()
joueurs=[['0','0'],['0','0'],['0','0'],['0','0'],['0','0']]
joueurs=sorted(joueurs,reverse=True)
nom=ent.get()
z=int(joueurs[4][0])
while s<z:
joueurs[4][0]=s
joueurs[4][1]=nom
joueurs=sorted(joueurs,reverse=True)
resultats.close()
joueurs.remove(joueurs[4])
joueurs.append([score,nom])
# GENERIQUE --------------------------------------------------------------------
root = Tk()
root.title("GIF")
frame=[]
# Pour les images de 01.gif à 020.gif :
for i in range(1,21):
fname = "0"+str(i)+".gif"
frame+=[PhotoImage(file=fname)]
wrap = Canvas(root, width=800, height=276)
wrap.pack()
def do_animation(currentframe):
def do_image():
wrap.create_image(400,138,image=frame[currentframe], tag='ani')
# Permet de supprimer l'image en cours d'utilisation :
wrap.delete('ani')
try:
do_image()
except IndexError:
# Recommencer à la première image :
currentframe = 0
do_image()
wrap.update_idletasks() #Force à rééditer le canvas
currentframe = currentframe + 1
# Lancer l'animation :
root.after(100, do_animation, currentframe)
# Lancer do_animation
root.after(1, do_animation, 0)
#Lancer le jeu :
root.mainloop()
# COMPARAISON MOT ET PROPOSITION -----------------------------------------------
def ouvrirfen1() :
s=0 #score
v=3 #vies
global Continue
Continue = True
def affiche(event):
global i,a, trouve,s,v
while (a<=6) and (trouve==False):
"Votre proposition"
prop=entrerprop.get()
recap.configure(text=' Votre proposition : '+entrerprop.get())
# proposition en majuscule
propMaj=prop.upper()
# Affichage de la propostion dans le tableau
for k in range(5):
txt = can1.create_text(90+k*95, 160 +80*(a-1), text=propMaj[k], font="Arial 46", fill="white")
fen1.update()
time.sleep(0.5)
mot_bis=mot
for l in range (5):
if propMaj[l]==mot[l]:
if l==5:
mot_bis=mot_bis[0:5]+' '
else :
mot_bis=mot_bis[0:l]+' '+mot_bis[l+1:]
can1.create_rectangle(50+l*95,120+(a-1)*80,50+(l+1)*95,120+a*80,fill="red")
print(mot_bis)
for m in range (5):
if propMaj[m] in mot_bis:
if m==0 :
mot_bis=' '+mot_bis[1:]
else :
if l==5:
mot_bis=mot_bis[0:5]+' '
else :
mot_bis=mot_bis[0:m]+' '+mot_bis[m+1:]
can1.create_rectangle(50+m*95,120+(a-1)*80,50+(m+1)*95,120+a*80,fill="yellow")
for k in range(5):
txt = can1.create_text(90+k*95, 160 +80*(a-1), text=propMaj[k], font="Arial 46", fill="white")
fen1.update()
a=a+1
if propMaj==mot:
trouve=True
s=s+50
print('votre score est actuellement de',s) #à enlever
txt = can1.create_text(90+l, 160+l, text=mot[0], font="Arial 46", fill="white")
entrerprop.delete(0,END)
if a==7: #Perdre une vie si pas trouvé le mot
v=v-1
print("le mot à trouver était :",mot)
# Affichage de la première lettre à la ligne suivante, pour la nouvelle proposition
#txt = can1.create_text(95, 161+80*(a), text=mot[0], font="Arial 46", fill="white")
#a=a+1
#Mot proposé dans la zone de saisie
fen1=Tk()
fen1.title("MOTUTH")
Label(fen1,text="Proposition", width=71,bg='CornflowerBlue',font="Arial 12").grid(row=0,column=0)
trouve=False
entrerprop=Entry(fen1)
entrerprop.bind("<Return>",affiche)
entrerprop.grid(row=0,column=1)
prop=entrerprop.get()
recap=Label(fen1)
recap.grid(row=2,column=0)
#Mot choisi par le programme
liste_mot=['RALER','RAFLE','LIVRE','OBJET','FORCE','MARIE','DEGAT','MATHS','PORTE','COUPE','TABLE','NOTES','CRABE','LATIN','CHOIX','VOILA','ROUGE','JOLIE','OGRES','FELIN','FURET','STYLO','POING','TIGRE','MORTE','OMBRE','HIBOU','HUILE','BIJOU','PIXEL','SUITE','ARMES','DAGUE','PARLE','FUITE','HACHE','MAGIE','BATON','CORDE','FOINS','HOTEL','AUTEL','RUINE','POSTE','CARTE','CHUTE','URNES','OUTRE','COQUE','COPIE','GOULE','TOMES','POIRE','FROID','CHAUD','DEVIN','PRUNE','MELON','FONTE','GLACE','ARCHE','PLAGE','CLEFS','EXTRA','TOILE','BRUIT','MORTS','VELOS','CLAIR','TOURS','POINT','POULE','BONUS','MALUS','USAGE','JOKER','TEMPS','CHAOS','MORAL','CIBLE','COURS','POIDS','GRAND','MONDE','TRONC']
mot = random.choice(liste_mot)
print(mot)
# Tableau de jeu
can1=Canvas(fen1,bg='Cornflowerblue',height=700,width=650)
can1.grid(row=1)
x1,y1,x2,y2=50,40,525,40
x3,y3,x4,y4=50,120,50,600
for k in range (7) : # lignes verticales
y1,y2=y1+80,y2+80
can1.create_line (x1,y1,x2,y2,fill='white')
k=k+1
for l in range (6): # lignes horizontales
can1.create_line (x3,y3,x4,y4,fill='white')
x3,x4=x3+95,x4+95
l=l+1
#Création des rectangles utilisés pour la comparaison
x5,y5,x6,y6=50,120,145,200
x7,y7,x8,y8=50,200,145,280
x9,y9,x10,y10=50,280,145,360
x11,y11,x12,y12=50,360,145,440
x13,y13,x14,y14=50,440,145,520
x15,y15,x16,y16=50,520,145,600
for m in range (5):
can1.create_rectangle(x5,y5,x6,y6)
x5,x6=x5+95,x6+95
m=m+1
for n in range (5):
can1.create_rectangle(x7,y7,x8,y8)
x7,x8=x7+95,x8+95
n=n+1
for o in range (5):
can1.create_rectangle(x9,y9,x10,y10)
x9,x10=x9+95,x10+95
o=o+1
for p in range (5):
can1.create_rectangle(x11,y11,x12,y12)
x11,x12=x11+95,x12+95
p=p+1
for q in range (5):
can1.create_rectangle(x13,y13,x14,y14)
x13,x14=x13+95,x14+95
q=q+1
for r in range (5):
can1.create_rectangle(x15,y15,x16,y16)
x15,x16=x15+95,x16+95
r=r+1
#Afficher la première lettre du mot à trouver dans le tableau
txt = can1.create_text(90, 160, text=mot[0], font="Arial 46", fill="white")
#Labels vie(s)
Label(fen1,text="Nombre de vie(s) restante(s):", width=25, bg='CornflowerBlue', height=20, font='Arial 12').grid(row=1,column=1)
Label(fen1,text=v,bg='CornflowerBlue',width=1,height=20,font='Arial 12').grid(row=1,column=2)
#Fenêtre qui annonce le score
fen1.mainloop()
# FENÊTRE REGLES ---------------------------------------------------------------
def ouvrirfen2() :
fen2=Toplevel()
fen2.title("REGLES")
fen2.grab_set()
fen2.focus_set()
canvas = Canvas(fen2,width=600, height=600)
photo = PhotoImage(file="règles.gif")
item = canvas.create_image(300,300, image=photo)
canvas.pack()
fen2.mainloop()
# FENÊTRE SCORES ---------------------------------------------------------------
def ouvrirfen3() :
fen3=Toplevel()
fen3.title("SCORES")
fen3.grab_set()
fen3.focus_set()
can3=Canvas(fen3,bg='CornflowerBlue',height=400,width=650)
can3.pack(side=LEFT)
#fichier scores
resultats=open('scores','r')
r=resultats.read().split()
joueurs=[['0','0'],['0','0'],['0','0'],['0','0'],['0','0']]
for i in range(5):
joueurs[i][0]=r[2*i]
joueurs[i][1]=r[2*i+1]
joueurs=sorted(joueurs,reverse=True)
nom=ent.get()
z=int(joueurs[4][0])
if s>(z):
joueurs[4][0]=s
joueurs[4][1]=nom
joueurs=sorted(joueurs,reverse=True)
else:
print('')
resultats.close()
#tracer du tableau
x1,y1=50,70
for k in range (6) :
can3.create_line (50,y1+k*50,600,y1+k*50,fill='white')
for l in range (3):
can3.create_line (x1+l*275,70,x1+l*275,321,fill='white')
#placement des pseudos et scores dans le tableau
A=48
a=len(joueurs)
for u in range (a):
A=A+50
txt1 = can3.create_text(160,A,text=joueurs[u][0],font="14", fill="white")
txt1 = can3.create_text(455,A,text=joueurs[u][1],font="14", fill="white")
print(joueurs)
fen3.mainloop()
# MENU ACCUEIL -----------------------------------------------------------------
def ouvrirfen0() :
fen0=Toplevel()
fen0.title("ACCUEIL")
fen0.grab_set()
fen0.focus_set()
canvas = Canvas(fen0,width=350, height=110, bg='CornflowerBlue')
photo = PhotoImage(file="final0.gif")
item = canvas.create_image(175,61, image=photo)
canvas.grid(row =1, column =1, rowspan =5, padx =0, pady =0)
bou1=Button(fen0,width=10,text='JEU',fg='white',bg='CornflowerBlue',command=ouvrirfen1)
bou1.grid(row=1,sticky=E)
bou2=Button(fen0,width=10,text='REGLES',fg='white',bg='CornflowerBlue',command=ouvrirfen2)
bou2.grid(row=2,sticky=E)
bou3=Button(fen0,width=10,text='SCORES',fg='white',bg='CornflowerBlue',command=ouvrirfen3)
bou3.grid(row=3,sticky=E)
bou4=Button(fen0,width=10,text='QUITTER',fg='white',bg='CornflowerBlue',command=quit)
bou4.grid(row=4,sticky=E)
fen0.mainloop
# ENTREE DU PSEUDO -------------------------------------------------------------
fen= Tk()
fen.title('Choisissez votre pseudo :')
ent = Entry(fen,width=50)
ent.pack(side=TOP, fill=X)
nom=ent.bind('<Return>',lambda event: fetch())
recap=Label(fen)
recap.pack(side=BOTTOM)
bou001=Button(fen,text="Valider et accéder au jeu",command=ouvrirfen0)
bou001.pack(side=BOTTOM)
Nous sommes en Terminale S spécialité ISN, et nous avons choisi de présenter comme programme une version maison du jeu Motus, renommé pour cela Motuth.
Seulement, nous avons plusieurs problèmes : tout d'abord, une fois que l'utilisateur a trouvé le bon mot, ou qu'il a épuisé toutes ses chances de trouver le bon mot, nous n'arrivons pas à faire afficher une nouvelle grille de jeu (le problème se trouve de la ligne 88 à la ligne 236). Ensuite, nous avons du mal à intégrer une variable score (appelée ici s), qui compterait le nombre de points en fonction du nombre de grilles réussies, problème lié au fait que nous n'arrivons pas à faire une nouvelle grille (lignes 258 à 306). Enfin, le jeu démarre par une animation sous forme de GIF (que vous ne pourrez sûrement pas visualiser puisque vous ne disposez pas des images nécessaires, il vous faudra donc supprimer cette partie pour tester le jeu, je suppose), que nous souhaiterions fermer en cliquant simplement dessus, ce que nous n'arrivons pas à faire.
Nous sommes conscientes de demander beaucoup, mais chaque réponse nous sera précieuse.
Merci d'avance,
Lisa, Zoé, Chloé, trois élèves en détresse
from tkinter import *
import random
import time
trouve = False
a=1
s=0 #score
v=3 #vies
# PSEUDO -----------------------------------------------------------------------
def fetch():
global nom
nom=ent.get()
recap.configure(text='Votre pseudo est : '+ent.get())
ent.delete(0,END)
score=s
resultats=open('scores','r')
r=resultats.read().split()
joueurs=[['0','0'],['0','0'],['0','0'],['0','0'],['0','0']]
joueurs=sorted(joueurs,reverse=True)
nom=ent.get()
z=int(joueurs[4][0])
while s<z:
joueurs[4][0]=s
joueurs[4][1]=nom
joueurs=sorted(joueurs,reverse=True)
resultats.close()
joueurs.remove(joueurs[4])
joueurs.append([score,nom])
# GENERIQUE --------------------------------------------------------------------
root = Tk()
root.title("GIF")
frame=[]
# Pour les images de 01.gif à 020.gif :
for i in range(1,21):
fname = "0"+str(i)+".gif"
frame+=[PhotoImage(file=fname)]
wrap = Canvas(root, width=800, height=276)
wrap.pack()
def do_animation(currentframe):
def do_image():
wrap.create_image(400,138,image=frame[currentframe], tag='ani')
# Permet de supprimer l'image en cours d'utilisation :
wrap.delete('ani')
try:
do_image()
except IndexError:
# Recommencer à la première image :
currentframe = 0
do_image()
wrap.update_idletasks() #Force à rééditer le canvas
currentframe = currentframe + 1
# Lancer l'animation :
root.after(100, do_animation, currentframe)
# Lancer do_animation
root.after(1, do_animation, 0)
#Lancer le jeu :
root.mainloop()
# COMPARAISON MOT ET PROPOSITION -----------------------------------------------
def ouvrirfen1() :
s=0 #score
v=3 #vies
global Continue
Continue = True
def affiche(event):
global i,a, trouve,s,v
while (a<=6) and (trouve==False):
"Votre proposition"
prop=entrerprop.get()
recap.configure(text=' Votre proposition : '+entrerprop.get())
# proposition en majuscule
propMaj=prop.upper()
# Affichage de la propostion dans le tableau
for k in range(5):
txt = can1.create_text(90+k*95, 160 +80*(a-1), text=propMaj[k], font="Arial 46", fill="white")
fen1.update()
time.sleep(0.5)
mot_bis=mot
for l in range (5):
if propMaj[l]==mot[l]:
if l==5:
mot_bis=mot_bis[0:5]+' '
else :
mot_bis=mot_bis[0:l]+' '+mot_bis[l+1:]
can1.create_rectangle(50+l*95,120+(a-1)*80,50+(l+1)*95,120+a*80,fill="red")
print(mot_bis)
for m in range (5):
if propMaj[m] in mot_bis:
if m==0 :
mot_bis=' '+mot_bis[1:]
else :
if l==5:
mot_bis=mot_bis[0:5]+' '
else :
mot_bis=mot_bis[0:m]+' '+mot_bis[m+1:]
can1.create_rectangle(50+m*95,120+(a-1)*80,50+(m+1)*95,120+a*80,fill="yellow")
for k in range(5):
txt = can1.create_text(90+k*95, 160 +80*(a-1), text=propMaj[k], font="Arial 46", fill="white")
fen1.update()
a=a+1
if propMaj==mot:
trouve=True
s=s+50
print('votre score est actuellement de',s) #à enlever
txt = can1.create_text(90+l, 160+l, text=mot[0], font="Arial 46", fill="white")
entrerprop.delete(0,END)
if a==7: #Perdre une vie si pas trouvé le mot
v=v-1
print("le mot à trouver était :",mot)
# Affichage de la première lettre à la ligne suivante, pour la nouvelle proposition
#txt = can1.create_text(95, 161+80*(a), text=mot[0], font="Arial 46", fill="white")
#a=a+1
#Mot proposé dans la zone de saisie
fen1=Tk()
fen1.title("MOTUTH")
Label(fen1,text="Proposition", width=71,bg='CornflowerBlue',font="Arial 12").grid(row=0,column=0)
trouve=False
entrerprop=Entry(fen1)
entrerprop.bind("<Return>",affiche)
entrerprop.grid(row=0,column=1)
prop=entrerprop.get()
recap=Label(fen1)
recap.grid(row=2,column=0)
#Mot choisi par le programme
liste_mot=['RALER','RAFLE','LIVRE','OBJET','FORCE','MARIE','DEGAT','MATHS','PORTE','COUPE','TABLE','NOTES','CRABE','LATIN','CHOIX','VOILA','ROUGE','JOLIE','OGRES','FELIN','FURET','STYLO','POING','TIGRE','MORTE','OMBRE','HIBOU','HUILE','BIJOU','PIXEL','SUITE','ARMES','DAGUE','PARLE','FUITE','HACHE','MAGIE','BATON','CORDE','FOINS','HOTEL','AUTEL','RUINE','POSTE','CARTE','CHUTE','URNES','OUTRE','COQUE','COPIE','GOULE','TOMES','POIRE','FROID','CHAUD','DEVIN','PRUNE','MELON','FONTE','GLACE','ARCHE','PLAGE','CLEFS','EXTRA','TOILE','BRUIT','MORTS','VELOS','CLAIR','TOURS','POINT','POULE','BONUS','MALUS','USAGE','JOKER','TEMPS','CHAOS','MORAL','CIBLE','COURS','POIDS','GRAND','MONDE','TRONC']
mot = random.choice(liste_mot)
print(mot)
# Tableau de jeu
can1=Canvas(fen1,bg='Cornflowerblue',height=700,width=650)
can1.grid(row=1)
x1,y1,x2,y2=50,40,525,40
x3,y3,x4,y4=50,120,50,600
for k in range (7) : # lignes verticales
y1,y2=y1+80,y2+80
can1.create_line (x1,y1,x2,y2,fill='white')
k=k+1
for l in range (6): # lignes horizontales
can1.create_line (x3,y3,x4,y4,fill='white')
x3,x4=x3+95,x4+95
l=l+1
#Création des rectangles utilisés pour la comparaison
x5,y5,x6,y6=50,120,145,200
x7,y7,x8,y8=50,200,145,280
x9,y9,x10,y10=50,280,145,360
x11,y11,x12,y12=50,360,145,440
x13,y13,x14,y14=50,440,145,520
x15,y15,x16,y16=50,520,145,600
for m in range (5):
can1.create_rectangle(x5,y5,x6,y6)
x5,x6=x5+95,x6+95
m=m+1
for n in range (5):
can1.create_rectangle(x7,y7,x8,y8)
x7,x8=x7+95,x8+95
n=n+1
for o in range (5):
can1.create_rectangle(x9,y9,x10,y10)
x9,x10=x9+95,x10+95
o=o+1
for p in range (5):
can1.create_rectangle(x11,y11,x12,y12)
x11,x12=x11+95,x12+95
p=p+1
for q in range (5):
can1.create_rectangle(x13,y13,x14,y14)
x13,x14=x13+95,x14+95
q=q+1
for r in range (5):
can1.create_rectangle(x15,y15,x16,y16)
x15,x16=x15+95,x16+95
r=r+1
#Afficher la première lettre du mot à trouver dans le tableau
txt = can1.create_text(90, 160, text=mot[0], font="Arial 46", fill="white")
#Labels vie(s)
Label(fen1,text="Nombre de vie(s) restante(s):", width=25, bg='CornflowerBlue', height=20, font='Arial 12').grid(row=1,column=1)
Label(fen1,text=v,bg='CornflowerBlue',width=1,height=20,font='Arial 12').grid(row=1,column=2)
#Fenêtre qui annonce le score
fen1.mainloop()
# FENÊTRE REGLES ---------------------------------------------------------------
def ouvrirfen2() :
fen2=Toplevel()
fen2.title("REGLES")
fen2.grab_set()
fen2.focus_set()
canvas = Canvas(fen2,width=600, height=600)
photo = PhotoImage(file="règles.gif")
item = canvas.create_image(300,300, image=photo)
canvas.pack()
fen2.mainloop()
# FENÊTRE SCORES ---------------------------------------------------------------
def ouvrirfen3() :
fen3=Toplevel()
fen3.title("SCORES")
fen3.grab_set()
fen3.focus_set()
can3=Canvas(fen3,bg='CornflowerBlue',height=400,width=650)
can3.pack(side=LEFT)
#fichier scores
resultats=open('scores','r')
r=resultats.read().split()
joueurs=[['0','0'],['0','0'],['0','0'],['0','0'],['0','0']]
for i in range(5):
joueurs[i][0]=r[2*i]
joueurs[i][1]=r[2*i+1]
joueurs=sorted(joueurs,reverse=True)
nom=ent.get()
z=int(joueurs[4][0])
if s>(z):
joueurs[4][0]=s
joueurs[4][1]=nom
joueurs=sorted(joueurs,reverse=True)
else:
print('')
resultats.close()
#tracer du tableau
x1,y1=50,70
for k in range (6) :
can3.create_line (50,y1+k*50,600,y1+k*50,fill='white')
for l in range (3):
can3.create_line (x1+l*275,70,x1+l*275,321,fill='white')
#placement des pseudos et scores dans le tableau
A=48
a=len(joueurs)
for u in range (a):
A=A+50
txt1 = can3.create_text(160,A,text=joueurs[u][0],font="14", fill="white")
txt1 = can3.create_text(455,A,text=joueurs[u][1],font="14", fill="white")
print(joueurs)
fen3.mainloop()
# MENU ACCUEIL -----------------------------------------------------------------
def ouvrirfen0() :
fen0=Toplevel()
fen0.title("ACCUEIL")
fen0.grab_set()
fen0.focus_set()
canvas = Canvas(fen0,width=350, height=110, bg='CornflowerBlue')
photo = PhotoImage(file="final0.gif")
item = canvas.create_image(175,61, image=photo)
canvas.grid(row =1, column =1, rowspan =5, padx =0, pady =0)
bou1=Button(fen0,width=10,text='JEU',fg='white',bg='CornflowerBlue',command=ouvrirfen1)
bou1.grid(row=1,sticky=E)
bou2=Button(fen0,width=10,text='REGLES',fg='white',bg='CornflowerBlue',command=ouvrirfen2)
bou2.grid(row=2,sticky=E)
bou3=Button(fen0,width=10,text='SCORES',fg='white',bg='CornflowerBlue',command=ouvrirfen3)
bou3.grid(row=3,sticky=E)
bou4=Button(fen0,width=10,text='QUITTER',fg='white',bg='CornflowerBlue',command=quit)
bou4.grid(row=4,sticky=E)
fen0.mainloop
# ENTREE DU PSEUDO -------------------------------------------------------------
fen= Tk()
fen.title('Choisissez votre pseudo :')
ent = Entry(fen,width=50)
ent.pack(side=TOP, fill=X)
nom=ent.bind('<Return>',lambda event: fetch())
recap=Label(fen)
recap.pack(side=BOTTOM)
bou001=Button(fen,text="Valider et accéder au jeu",command=ouvrirfen0)
bou001.pack(side=BOTTOM)
A voir également:
- Projet ISN - Motus sous Python
- Citizen code python avis - Accueil - Outils
- Filigrane projet - Guide
- Gant projet - Télécharger - Gestion de projets
- \R python ✓ - Forum Python
- Musique projet x - Forum Musique / Radio / Clip
1 réponse
Salut,
J'ai plusieurs propositions. Déjà, il faut que tu inséres correctement ton code. Pour cela (soit dans un nouveau message, soit en modifiant ton post) clique sur le menu déroulant du bouton <> (quand tu écris un message) puis sélectionne Python. Colle ton code entre les deux bannières et c'est bon.
Ensuite, tu as un problème vis-à-vis du fait de recommencer le jeu après qu'il ait trouvé le mot ou qu'il ait épuisé toutes ses chances. Tu peux mettre tout ce qui concerne la fenêtre de jeu dans une fonction (mettons jeu() ) et mettre à la fin (quand il a gagné le jeu) :
La fonction jeu() va donc s'appeler elle-même quand le joueur a gagné ou n'a plus de vie.
N'oublie pas de réinitialiser les variables qui ne le sont pas au début de jeu ! (sauf si tu veux qu'elles s'incrémentent comme la variable s).
J'ai plusieurs propositions. Déjà, il faut que tu inséres correctement ton code. Pour cela (soit dans un nouveau message, soit en modifiant ton post) clique sur le menu déroulant du bouton <> (quand tu écris un message) puis sélectionne Python. Colle ton code entre les deux bannières et c'est bon.
Ensuite, tu as un problème vis-à-vis du fait de recommencer le jeu après qu'il ait trouvé le mot ou qu'il ait épuisé toutes ses chances. Tu peux mettre tout ce qui concerne la fenêtre de jeu dans une fonction (mettons jeu() ) et mettre à la fin (quand il a gagné le jeu) :
fen1.destroy() # si fen1 regroupe bien toute la partie de ton jeu jeu() # exécute tout le jeu
La fonction jeu() va donc s'appeler elle-même quand le joueur a gagné ou n'a plus de vie.
N'oublie pas de réinitialiser les variables qui ne le sont pas au début de jeu ! (sauf si tu veux qu'elles s'incrémentent comme la variable s).
Merci pour ta réponse si rapide !
Crois-tu que tu pourrais, en copiant-collant notre programme, nous montrer comment tu envisages que l'on s'y prenne ? Nous sommes un peu perdues, bien que nous essayons de notre côté également de faire ce que tu nous proposes.
Encore merci
quand le joueur n'a plus de vie ou qu'il a gagné. Comme ça, ça détruit tout l'environnement que tu as crée puis ça recommence du début.
Attention aux variables non initialisées qui vont continuer de varier (pour la variable score c'est pas important mais pour vie c'est important car le nombre de vie est réinitialisé à chaque début de jeu).