Problème avec Tkinter ,fonctions
Fermé
leblogueur
-
23 oct. 2020 à 11:27
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 23 oct. 2020 à 15:49
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 23 oct. 2020 à 15:49
A voir également:
- Problème avec Tkinter ,fonctions
- Ces codes secrets vous donnent accès aux fonctions cachées de votre smartphone Android - Accueil - Android
- Codes secrets Android : accéder aux fonctions cachées - Guide
- Les fonctions excel en anglais - Guide
- Comment faire une fonction si avec et ? - Guide
- Mise en forme conditionnelle avec fonction si - Guide
3 réponses
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 23 oct. 2020 à 12:03
Modifié le 23 oct. 2020 à 12:03
Bonjour leblogueur,
Normal : operation est locale a la fonction calcul_generator donc inconnue dans calcul_verif
idem pour A et B
problème ici:
du coup, quand on répond bien, on a un message "dommage la réponse était ..."
Pour récupérer le contenu de la réponse dans calcul_entry, il ne suffit pas d'écrire
mais
Au fait, il faut écrire difficulte et pas dificulter
Sinon, tu peux simplifier le choix de l'opération comme ceci:
Normal : operation est locale a la fonction calcul_generator donc inconnue dans calcul_verif
idem pour A et B
problème ici:
calcul = A, operation, B
du coup, quand on répond bien, on a un message "dommage la réponse était ..."
Pour récupérer le contenu de la réponse dans calcul_entry, il ne suffit pas d'écrire
if calcul_entry == bonne_reponse :
mais
if calcul_entry.get() == bonne_reponse :
Au fait, il faut écrire difficulte et pas dificulter
Sinon, tu peux simplifier le choix de l'opération comme ceci:
op = ['+', '-', '*'] operation = random.choice(op)
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 23 oct. 2020 à 12:12
Modifié le 23 oct. 2020 à 12:12
il y a aussi un problème de logique:
tu initialise calcul_text avec : "0+0"
donc on répond 0 et on valide
et le bouton valider déclenche l'initialisation du calcul a afficher, mais trop tard, on a répondu 0, donc erreur
tu initialise calcul_text avec : "0+0"
donc on répond 0 et on valide
et le bouton valider déclenche l'initialisation du calcul a afficher, mais trop tard, on a répondu 0, donc erreur
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
23 oct. 2020 à 15:49
23 oct. 2020 à 15:49
en gros, il faudrait faire ça:
from tkinter import * import random difficulte = 5 score = 0 vie = 3 bonus = 0 def calcul_generateur(): global bonne_reponse #On efface les boites calcul_entry.delete(0,END) label_msg.config(text='') op = ['+', '-', '*'] operation = random.choice(op) A = random.randint(0, difficulte) B = random.randint(0, difficulte) calcul = str(A)+operation+str(B) bonne_reponse = eval(calcul) #Affichage du calcul calcul_text.config(text=calcul) def calcul_verif(): global vie, bonne_reponse if(int(calcul_entry.get()) == bonne_reponse): label_msg.config(text="Bravo !") else: vie -= 1 msg_erreur = "Erreur : {} Vie : {}".format(str(bonne_reponse), vie) label_msg.config(text=msg_erreur) window = Tk() window.title("Jeu mathématique") window.geometry("400x200") window.minsize(300, 200) window.config(background='#4065A4') label_msg = Label(window, width = '20', font=("Helvetica", 15)) label_msg.place(x=100, y=10) calcul_text = Label(window, width = '20', font=("Helvetica", 15)) calcul_text.place(x=100, y=50) calcul_entry = Entry(window, font=("Helvetica", 15)) calcul_entry.place(x=100, y=100) calcul_entry.focus() generate_calcul = Button(window, text="Afficher un calcul", font=("Helvetica", 11), command=calcul_generateur) generate_calcul.place(x=100, y=150) verif_calcul = Button(window, text="Valider", font=("Helvetica", 11), command=calcul_verif) verif_calcul.place(x=250, y=150) window.mainloop()