Je suis débutant sur python et je viens de faire mon premier programme avec une interface graphique utilisant tkinter.
Ce programme est un jeu de dés et voici le code :
nb=""
pièce = 10
cle =0
def one():
global nb
nb=1
def two():
global nb
nb=2
def three():
global nb
nb=3
def four():
global nb
nb=4
def five():
global nb
nb=5
def six():
global nb
nb=6
def entre():
global cle
cle =1
boutton1=Button(window,text="1" ,command=one)
boutton1.pack()
boutton2=Button(window,text="2" ,command=two)
boutton2.pack()
boutton3=Button(window,text="3" ,command=three)
boutton3.pack()
boutton4=Button(window,text="4", command=four)
boutton4.pack()
boutton5=Button(window,text="5", command=five)
boutton5.pack()
boutton6=Button(window,text="6",command=six)
boutton6.pack()
bouttonentre=Button(window,text="valider",command=entre)
bouttonentre.pack()
while pièce!=0 :
while cle==0:
window.mainloop()
zonetexte.insert(END, str(pièce))
pièce=pièce-1
nb=str(nb)
nb2=r.randint(1,6)
nb2=str(nb2)
stop="stop"
window.mainloop()
if nb2 == nb:
zonetexte2.insert(END,str(nb2))
pièce=pièce+6
print ("GAGNE")
cle=0
window.mainloop()
elif nb2 != nb:
zonetexte2.insert(END,str(nb2))
print ("PERDU")
cle=0
window.mainloop()
else :
print ("partie finie")
Le programme n'est pas entier mais le reste n'est que de l'interface et marche très bien.
Le problème est donc que, malgré le fait que cle soit egal à 1 (grace au bouton vérifier), la boucle while ne s'en rend pas compte et continue comme si cle=0
Voila, c'est mon premier message sur le forum et j'espère que mon erreur n'est pas trop stupide.
(Merci d'avance à ceux qui prendrons le temps de me répondre)
EDIT : Et les boucles sont sans doute de trop, comme son nom l'indique, la mainloop est une boucle, et elle est bloquante, c'est à dire qu'une fois que le programme arrive à cette ligne, la mainloop s'exécute jusqu'à ce qu'un évènement l'arrête.
EDIT : Et les boucles sont sans doute de trop, comme son nom l'indique, la mainloop est une boucle, et elle est bloquante, c'est à dire qu'une fois que le programme arrive à cette ligne, la mainloop s'exécute jusqu'à ce qu'un évènement l'arrête.
- Edité par LoupSolitaire il y a environ 14 heures
OK merci pour l'info je vais essayer de modifier tout ca
Problème avec une boucle while
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Blond, bouclé, toujours le sourire aux lèvres...
Blond, bouclé, toujours le sourire aux lèvres...