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 :
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
Je souhaite le porter dans une interface graphique (sous Tkinter puisque je poste ici), et là c'est la cata...

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.

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
Cordialement,

Spirzouf