Petit soft codé en python pour apprendre ou reviser ses tables de multiplication.
Soyez tolérant, je suis un amateur. Le programme fonctionne bien et je n'ai pas bug connu. Il prend en premier paramètre le nom de l'utilisateur, puis demande la table a réviser, pose 10 multiplications aléatoires sur la table et affiche en fin de série le pourcentage de réussite.
Idéal pour apprendre ludiquement aux enfants leurs tables et aux adultes à les réviser.
Source / Exemple :
# -*- coding: utf-8 -*-
from Tkinter import *
from random import randrange
def dem_pseudo():
"Demande le pseudo de l'utilisateur"
global texte1, bouton1, entree1, compteur1, compteur2
texte1 = Label(fenetre1, text='Entrez votre prénom')
texte1.pack()
entree1 = Entry(fenetre1)
entree1.pack()
entree1.focus_set()
bouton1 = Button(fenetre1, text='Valider', command=(lambda:choix_pseudo(0)))
bouton1.pack()
bouton2 = Button(fenetre1, text='Bye Bye', command=fenetre1.destroy)
bouton2.pack(side=BOTTOM)
rajout=Label(fenetre1,text="***But du jeu*** Apprendre et/ou reviser les tables de multiplications",fg='red')
rajout.pack(side=BOTTOM)
fenetre1.bind('<Return>', choix_pseudo)
def choix_pseudo(event):
"Choix du pseudo"
global texte1, bouton1, entree1, compteur1, compteur2, pseudo
try:
str(entree1.get())
except:
pseudo = "anonyme"
else:
pseudo = str(entree1.get())
if pseudo == "":
pseudo = "anonyme"
entree1.destroy()
bouton1.destroy()
dem_table()
def dem_table():
"Demande à l'utilisateur la table"
global texte1, bouton1, entree1, compteur1, compteur2, pseudo
texte1.configure(text='Veuillez choisir votre table de multiplication :')
entree1 = Entry(fenetre1)
entree1.pack()
entree1.focus_set()
bouton1 = Button(fenetre1, text='Valider', command=(lambda:choix_table(0)))
bouton1.pack()
fenetre1.bind('<Return>', choix_table)
def choix_table(event):
"Choix de la table à réviser"
global table, compteur1, compteur2, texte1, bouton1, entree1, pseudo
try:
int(entree1.get())
except:
table = randrange(1,10)
else:
table = int(entree1.get())
entree1.destroy()
bouton1.destroy()
choix_chiffre()
def choix_chiffre():
"Choix du chiffre"
global table, chiffre, entree1, bouton1, texte1, compteur1, compteur2, pseudo
chiffre = randrange(1,10)
texte1.configure(text=str(chiffre)+' x '+str(table)+' =')
entree1 = Entry(fenetre1)
entree1.pack()
entree1.focus_set()
compteur1 += 1
bouton1 = Button(fenetre1, text='Valider', command=(lambda:val_mult(0)))
bouton1.pack()
fenetre1.bind('<Return>', val_mult)
def val_mult(event):
"Validation de la multiplication"
global table, chiffre, entree1, bouton1, compteur2, bouton2, texte1, texte2, texte3, compteur1, compteur2, pseudo
bouton1.destroy()
res_juste = table * chiffre
try:
int(entree1.get())
except:
res_utilisateur = 0
else:
res_utilisateur = int(entree1.get())
entree1.destroy()
if res_juste == res_utilisateur:
texte1.configure(text='Bravo '+str(pseudo)+' ! Tu as trouvé !')
compteur2 += 1
else:
texte1.configure(text='Faux, la réponse était :'+str(res_juste))
if compteur1 == 10:
taux = compteur2 * 100 / 10
texte2 = Label(fenetre1, text='Ton taux de réussite est de : '+str(taux)+' %')
texte2.pack()
texte3 = Label(fenetre1, text='Veux tu recommencer ?')
texte3.pack()
bouton1 = Button(fenetre1, text='oui', command=(lambda:recommencer(0)))
bouton1.pack()
bouton2 = Button(fenetre1, text='non', command=fenetre1.destroy)
bouton2.pack()
fenetre1.bind('<Return>', recommencer)
else:
bouton1 = Button(fenetre1, text='on continue :)', command=(lambda:continuer(0)))
bouton1.pack()
fenetre1.bind('<Return>', continuer)
def recommencer(event):
"Réinitialisateur"
global table, chiffre, entree1, bouton1, compteur2, bouton2, texte1, texte2, texte3, compteur1, compteur2, pseudo
texte2.destroy()
texte3.destroy()
bouton1.destroy()
bouton2.destroy()
compteur1 = 0
compteur2 = 0
dem_table()
def continuer(event):
"Réinitialisateur partiel"
global table, chiffre, entree1, bouton1, compteur2, bouton2, texte1, texte2, texte3, compteur1, compteur2, pseudo
bouton1.destroy()
choix_chiffre()
# Programme principal
fenetre1 = Tk()
fenetre1.title('TableX.-V4.1')
fenetre1.geometry('350x150')
compteur1 = 0
compteur2 = 0
dem_pseudo()
fenetre1.mainloop()
Conclusion :
Ce soft a été codé par moi meme avec l'aide de cat_loic qui en partage la création. Il est sous licence libre.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.