Bonjour à tous ! Tout d’abord, je tiens à m’excuser car mon anglais n’est pas très bon, je suis français.
Je suis un débutant en python et j’ai besoin d’aide car le programme que je développe plante sans renvoyer de message d’erreur. Puis-je avoir votre aide pour trouver d’où vient l’erreur ?
J’utilise PyCharm Community Edition 2021.3.2
C’est un jeu au juste prix. lorsque l’on écrit le prix auquel on pense dans l’entrée « entre_prix » et que l’on clique sur le bouton « btn_propos », le programme est censé : 1 récupérer l’entrée 2 créer aléatoirement la valeur que l’on devra découvrir 3 comparer les deux valeurs 4 disons si la valeur proposée est supérieure, inférieure ou égale pour créer une valeur 5-1 si les deux valeurs sont différentes, le joueur doit réessayer 5-2 si les deux valeurs sont identiques, le joueur a gagné et le jeu propose de rejouer
J’ai développé la boucle de manière indépendante, et ça marche bien. Mais c’est lorsque j’essaie d’ajouter l’interface graphique que celle-ci ne fonctionne plus.
Mon code ressemble à ceci ne faites pas attention aux images
from tkinter import *
import random
import tkinter as entre_prix
def proposer():
global parole
global frame_haut
global prix_propose
prix_propose = entre_prix.get()
boucle()
def boucle():
global parole
global frame_haut
global entre_prix
global rejouer
global prix_propose
while rejouer != "STOP":
prixjuste = random.randint(1, 100)
nbessaie = 1
while True:
try:
parole = Label(frame_haut, text="Alors? Quel est le prix?", font=("Helvetica", 20), bg='#944D05',
fg='black')
parole.grid(row=0, column=0, sticky=W)
prix_propose = int(entre_prix.get())
break
except ValueError:
parole = Label(frame_haut, text="tu doit rentrer un nombre", font=("Helvetica", 20), bg='#944D05',
fg='black')
parole.grid(row=0, column=0, sticky=W)
continue
while prix_propose != prixjuste:
if prix_propose < prixjuste:
parole = Label(frame_haut, text="c'est plus haut", font=("Helvetica", 20), bg='#944D05',
fg='black')
parole.grid(row=0, column=0, sticky=W)
nbessaie = nbessaie + 1
while True:
try:
parole = Label(frame_haut, text="Alors? Quel est le prix?", font=("Helvetica", 20),
bg='#944D05',
fg='black')
parole.grid(row=0, column=0, sticky=W)
prix_propose = int(entre_prix.get())
break
except ValueError:
parole = Label(frame_haut, text="Alors? Quel est le prix?", font=("Helvetica", 20),
bg='#944D05',
fg='black')
parole.grid(row=0, column=0, sticky=W)
prix_propose = int(entre_prix.get())
continue
continue
if prix_propose > prixjuste:
parole = Label(frame_haut, text="c'est plus bas", font=("Helvetica", 20), bg='#944D05',
fg='black')
parole.grid(row=0, column=0, sticky=W)
nbessaie = nbessaie + 1
while True:
try:
parole = Label(frame_haut, text="Alors? Quel est le prix?", font=("Helvetica", 20),
bg='#944D05',
fg='black')
parole.grid(row=0, column=0, sticky=W)
prix_propose = int(entre_prix.get())
break
except ValueError:
parole = Label(frame_haut, text="tu doit rentrer un nombre", font=("Helvetica", 20),
bg='#944D05',
fg='black')
parole.grid(row=0, column=0, sticky=W)
continue
continue
print("c'est gagné!")
print("tu as réussie en {} essaie".format(nbessaie))
if reccord == ("inexistant"):
reccord = nbessaie
print("Tu n'avais pas de reccord, ton premier reccord est donc de {}".format(reccord))
else:
if nbessaie < reccord:
print("Tu as battut ton anciens reccord qui était de {}".format(reccord))
reccord = nbessaie
elif nbessaie > reccord:
print("ton reccord est toujours de {}".format(reccord))
elif nbessaie == reccord:
print("Tu as fait exactement comme ton anciens reccord, qui est donc toujours de {}".format(reccord))
rejouer = input("si tu veut rejouer, écrit oui. Si tu veut arreter écrit STOP")
rejouer = "oui"
reccord = "inexistant"
# créer la fenêtre par une variable qui contient l'action d'ouvrir la fenêtre
fenetre = Tk()
fenetre.title("Juste prix 1.1")
fenetre.geometry("800x700")
fenetre.iconbitmap("C:\python\essaie\essaie1\juste prix\logo-sac.ico")
fenetre.config(background='#944D05')
frame = Frame(fenetre, bg='#B03457')
frame_haut = Frame(fenetre, bg='#944D05')
frame_haut.pack(expand=YES)
frame_bas: Frame = Frame(fenetre, bg='#944D05')
frame_bas.pack(expand=YES)
# creation d'image
largeur = 800
hauteur = 600
image = PhotoImage(file="C:\python\essaie\essaie1\juste prix\image pirate.png").zoom(50).subsample(28)
canva = Canvas(frame_haut, width=largeur, height=hauteur, bg='#944D05', bd=0, highlightthickness=0)
canva.create_image(largeur / 2, hauteur / 2, image=image)
canva.grid(row=1, column=0, sticky=W)
# entré du prix
entre_prix = Entry(frame_bas, font=("Helvetica", 33), bg='white', fg='black', width=10)
entre_prix.grid(row=1, column=0, sticky=W)
prix_propose = entre_prix.get()
# bouton pour proposer
btn_propos = Button(frame_bas, text="proposer ce prix", font=("Helvetica", 20), bg='white', fg='black',
command=proposer)
btn_propos.grid(row=1, column=1, sticky=W)
# bouton rejouer
btn_rejouer = Button(frame_bas, text="rejouer?", font=("Helvetica", 20), bg='white', fg='black')
btn_rejouer.grid(row=1, column=2, sticky=W)
# parole du pirat
parole = Label(frame_haut, text="_", font=("Helvetica", 20), bg='#944D05', fg='black')
parole.grid(row=0, column=0, sticky=W)
# afficher la fenetre
fenetre.mainloop()
Merci d’avance