Bonsoir,
Je débute depuis quelques jours en python.
J'ai réalisé un petit programme d'essai qui fonctionne très bien dans le shell. Il demande le nom du 'joueur' et lui fait faire des additions aléatoires de 2 valeurs comprises entre 0 et 10. Ne rien entrer comme réponse fait quitter le programme.
voici le code :
Je souhaite le porter dans une interface graphique (sous Tkinter puisque je poste ici), et là c'est la cata...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 #!/usr/bin/ python # -*- coding: utf-8 -*- # Programme permettant de s'entrainer au calcul mental # en générant aléatoirement des opérations simples à # résoudre from random import randrange def addition(min,max): max += 1 # inclure la borne supérieure pour la randomisation a = randrange(min, max) b = randrange(min, max) reponse = raw_input ('{0} + {1} = '.format (str(a),str(b))) resultat = str(a + b) if reponse == resultat : print( 'Tout bon !!' ) elif reponse == '': print( 'Fini de jouer !! Va ranger ta chambre {0} !!'.format(nom) ) else: print( 'NON {0} !!! la bonne réponse était {1}'.format(nom,resultat) ) return reponse nom = raw_input("Bonjour, comment t'appelles-tu ? ") boucle = True while boucle: if addition(0,10) == '': boucle = False
j'ai grand mal à me représenter le fonctionnement des objets / classes (j'ai lu entièrement le swaroop et feuilleté le Swinnen, mais tout est loin d'être encore clair)
voici mon code d'essai qui évidemment doit contenir des énormités... Merci d'avance de toute remarque utile voire d'exemple fonctionnel qui me permettrait de comprendre comment cela fonctionne.
Cordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 #!/usr/bin/ python # -*- coding: utf-8 -*- # Programme permettant de s'entrainer au calcul mental # en générant aléatoirement des opérations simples à # résoudre from Tkinter import * from random import randrange class Application(Tk): def __init__(self): Tk.__init__(self) question = Label(self) question.pack() saisie = Entry(self) saisie.pack() message = Label(self) message.pack() self.mainloop() app = Application() # intervalle de randomisation mini, maxi = 0, 10 # les nombres aléatoire seront tirés dans l'intervalle [0,10] maxi += 1 # inclure la borne supérieure pour la randomisation while True: # initialisation des variables a = randrange(mini, maxi) b = randrange(mini, maxi) questionText = str('{0} + {1} = '.format (str(a),str(b))) resultat = str(a + b) reponse = None # affichage de l'opération à effectuer au niveau du Label 'question' app.question.config(text = questionText) app.question.update() # saisie de la réponse print(repr(reponse)) reponse= str(app.saisie.get()) # test de la réponse et affichage d'un message adapté au niveau du Label 'message' if reponse == resultat : app.message.config(text= "bien joué ! on essaye encore") # afficher un message de félicitation elif reponse == 'stop': app.message.config(text= "D'accord, à bientot") # afficher un message d'adieu app.quit() break else: app.message.config(text= "NON !!! la bonne réponse était {0}".format(resultat)) # afficher un message d'erreur avec le résultat
Spirzouf
Partager