####### Projet ISN baccalauréat : Logiciel de calcul mental ######## # Par : Paul Negroni & Damien Rouby # # Le programme sans interface graphique est terminé # # Tout les bugs ont été fixés, ce programme est donc la version finale # ### I - Initialisation des variables et importation des modules ### import pygame from pygame.locals import * pygame.init() from time import * from random import * from sys import * choix = 0 niveau_add = 0 valid_1 = 0 n_add_f = 1 add_f = 0 add_f_1 = 0 add_f_2 = 0 res_add_f = 0 rep_add_f = 0 scor_add_f = 0 rej_add_f = 0 valid_2 = 0 n_add_n = 1 add_n = 0 add_n_1 = 0 add_n_2 = 0 res_add_n = 0 rep_add_n = 0 scor_add_n = 0 rej_add_n = 0 valid_3 = 0 n_add_d = 1 add_d = 0 add_d_1 = 0 add_d_2 = 0 res_add_d = 0 rep_add_d = 0 scor_add_d = 0 rej_add_d = 0 niveau_mul = 0 valid_4 = 0 n_mul_f = 1 mul_f = 0 mul_f_1 = 0 mul_f_2 = 0 res_mul_f = 0 rep_mul_f = 0 scor_mul_f = 0 rej_mul_f = 0 valid_5 = 0 n_mul_n = 1 mul_n = 0 mul_n_1 = 0 mul_n_2 = 0 res_mul_n = 0 rep_mul_n = 0 scor_mul_n = 0 rej_mul_n = 0 valid_6 = 0 n_mul_d = 1 mul_d = 0 mul_d_1 = 0 mul_d_2 = 0 res_mul_d = 0 rep_mul_d = 0 scor_mul_d = 0 rej_mul_d = 0 niveau_sou = 0 valid_7 = 0 n_sou_f = 1 sou_f = 0 sou_f_1 = 0 sou_f_2 = 0 res_sou_f = 0 rep_sou_f = 0 scor_sou_f = 0 rej_sou_f = 0 valid_8 = 0 n_sou_n = 1 sou_n = 0 sou_n_1 = 0 sou_n_2 = 0 res_sou_n = 0 rep_sou_n = 0 scor_sou_n = 0 rej_sou_n = 0 valid_9 = 0 n_sou_d = 1 sou_d = 0 sou_d_1 = 0 sou_d_2 = 0 res_sou_d = 0 rep_sou_d = 0 scor_sou_d = 0 rej_sou_d = 0 ### II - Programmes ### # Interface graphique # # Accueil # def accueil(choix): print("Bonjour, bienvenue dans le programme de calcul mental N&R.\n") sleep( 2 ) choix = input("Sur quel type de calcul voulez vous vous entrainer ?\n\n1 : Les additions\n2 : Les soustractions\n3 : Les multiplications\n\nType : ") if choix == '1' : addition(niveau_add,valid_1,n_add_f,add_f,add_f_1,add_f_2,res_add_f,rep_add_f,scor_add_f,rej_add_f,valid_2,n_add_n,add_n,add_n_1,add_n_2,res_add_n,rep_add_n,scor_add_n,rej_add_n,valid_3,n_add_d,add_d,add_d_1,add_d_2,res_add_d,rep_add_d,scor_add_d,rej_add_d) elif choix == '2' : soustraction(niveau_sou,valid_7,n_sou_f,sou_f,sou_f_1,sou_f_2,res_sou_f,rep_sou_f,scor_sou_f,rej_sou_f,valid_8,n_sou_n,sou_n,sou_n_1,sou_n_2,res_sou_n,rep_sou_n,scor_sou_n,rej_sou_n,valid_9,n_sou_d,sou_d,sou_d_1,sou_d_2,res_sou_d,rep_sou_d,scor_sou_d,rej_sou_d) elif choix == '3' : multiplication(niveau_mul,valid_4,n_mul_f,mul_f,mul_f_1,mul_f_2,res_mul_f,rep_mul_f,scor_mul_f,rej_mul_f,valid_5,n_mul_n,mul_n,mul_n_1,mul_n_2,res_mul_n,rep_mul_n,scor_mul_n,rej_mul_n,valid_6,n_mul_d,mul_d,mul_d_1,mul_d_2,res_mul_d,rep_mul_d,scor_mul_d,rej_mul_d) else : print("Je n'ai pas compris votre demande, veuillez réessayer.") accueil(choix) # Addition # def addition(niveau_add,valid_1,n_add_f,add_f,add_f_1,add_f_2,res_add_f,rep_add_f,scor_add_f,rej_add_f,valid_2,n_add_n,add_n,add_n_1,add_n_2,res_add_n,rep_add_n,scor_add_n,rej_add_n,valid_3,n_add_d,add_d,add_d_1,add_d_2,res_add_d,rep_add_d,scor_add_d,rej_add_d) : niveau_add = str(input("\nVeuillez choisir un niveau de difficulté.\n\n1 : Facile\n2 : Normal\n3 : Matheux\n\nNiveau : ")) if niveau_add == '1' : print("\nL'exercice est composé de 10 calculs simples, au bout de 6 secondes, le calcul est considéré comme faux.") valid_1 = str(input("Pour commencer l'exercice, appuyez sur 1 puis sur ENTREE. ")) while valid_1 != '1' : print("\nJe n'ai pas compris votre demande, veuillez réessayer.") addition(niveau_add,valid_1,n_add_f,add_f,add_f_1,add_f_2,res_add_f,rep_add_f,scor_add_f,rej_add_f,valid_2,n_add_n,add_n,add_n_1,add_n_2,res_add_n,rep_add_n,scor_add_n,rej_add_n,valid_3,n_add_d,add_d,add_d_1,add_d_2,res_add_d,rep_add_d,scor_add_d,rej_add_d) while n_add_f<11: add_f_1 = randrange(21) add_f_2 = randrange(21) res_add_f = str(add_f_1 + add_f_2) print("Calcul n°",n_add_f,":",add_f_1,"+",add_f_2,"= ") t1_add_f = time() rep_add_f = str(input("")) t2_add_f = time() t_add_f = round(t2_add_f - t1_add_f,1) if rep_add_f == res_add_f : if t_add_f > 6 : print("Vous avez mis",t_add_f,"secondes à répondre, le calcul est considéré comme faux...") else : print("Juste") scor_add_f = scor_add_f + 1 else : print("Faux, la réponse était :",res_add_f,".") n_add_f = n_add_f + 1 print("Votre score est de",scor_add_f,"/10.\n\nAppuyer sur 1 puis ENTREE pour rejouer, sinon, appuyer sur 2 puis ENTREE.") rej_add_f = str(input("")) if rej_add_f == '1': accueil(choix) else : print("A la prochaine ") sleep( 2 ) exit() elif niveau_add == '2' : print("\nL'exercice est composé de 10 calculs complexes, au bout de 10 secondes, le calcul est considéré comme faux.") valid_2 = str(input("Pour commencer l'exercice, appuyez sur 1 puis sur ENTREE. ")) while valid_2 != '1' : print("\nJe n'ai pas compris votre demande, veuillez réessayer.") addition(niveau_add,valid_1,n_add_f,add_f,add_f_1,add_f_2,res_add_f,rep_add_f,scor_add_f,rej_add_f,valid_2,n_add_n,add_n,add_n_1,add_n_2,res_add_n,rep_add_n,scor_add_n,rej_add_n,valid_3,n_add_d,add_d,add_d_1,add_d_2,res_add_d,rep_add_d,scor_add_d,rej_add_d) while n_add_n<11: add_n_1 = randrange(200)+20 add_n_2 = randrange(200)+20 res_add_n = str(add_n_1 + add_n_2) print("Calcul n°",n_add_n,":",add_n_1,"+",add_n_2,"= ") t1_add_n = time() rep_add_n = str(input("")) t2_add_n = time() t_add_n = round(t2_add_n - t1_add_n,1) if rep_add_n == res_add_n : if t_add_n > 10 : print("Vous avez mis",t_add_n,"secondes à répondre, le calcul est considéré comme faux...") else : print("Juste") scor_add_n = scor_add_n + 1 else : print("Faux, la réponse était :",res_add_n,".") n_add_n = n_add_n + 1 print("Votre score est de",scor_add_n,"/10\n\nAppuyer sur 1 puis ENTREE pour rejouer, sinon, appuyer sur une touche puis sur ENTREE.") rej_add_n = str(input("")) if rej_add_n == '1' : accueil(choix) else : print("A la prochaine ") sleep( 2 ) exit() elif niveau_add == '3' : print("\nL'exercice est composé de 10 calculs très complexes, au bout de 15 secondes, le calcul est considéré comme faux.") valid_3 = str(input("Pour commencer l'exercice, appuyez sur 1 puis sur ENTREE. ")) while valid_3 != '1' : print("\nJe n'ai pas compris votre demande, veuillez réessayer.") addition(niveau_add,valid_1,n_add_f,add_f,add_f_1,add_f_2,res_add_f,rep_add_f,scor_add_f,rej_add_f,valid_2,n_add_n,add_n,add_n_1,add_n_2,res_add_n,rep_add_n,scor_add_n,rej_add_n,valid_3,n_add_d,add_d,add_d_1,add_d_2,res_add_d,rep_add_d,scor_add_d,rej_add_d) while n_add_d<11: add_d_1 = randrange(1000)+220 add_d_2 = randrange(1000)+220 res_add_d = str(add_d_1 + add_d_2) print("Calcul n°",n_add_d,":",add_d_1,"+",add_d_2,"= ") t1_add_d = time() rep_add_d = str(input("")) t2_add_d = time() t_add_d = round(t2_add_d - t1_add_d,1) if rep_add_d == res_add_d : if t_add_d > 15 : print("Vous avez mis",t_add_d,"secondes à répondre, le calcul est considéré comme faux...") else : print("Juste") scor_add_d = scor_add_d + 1 else : print("Faux, la réponse était :",res_add_d,".") n_add_d = n_add_d + 1 print("Votre score est de",scor_add_d,"/10\n\nAppuyer sur 1 puis ENTREE pour rejouer, sinon, appuyer sur 2 puis ENTREE.") rej_add_d = str(input("")) if rej_add_d == '1' : accueil(choix) else : print("A la prochaine ") sleep( 2 ) exit() else : print("Je n'ai pas compris votre demande, veuillez réessayer.") addition(niveau_add,valid_1,n_add_f,add_f,add_f_1,add_f_2,res_add_f,rep_add_f,scor_add_f,rej_add_f,valid_2,n_add_n,add_n,add_n_1,add_n_2,res_add_n,rep_add_n,scor_add_n,rej_add_n,valid_3,n_add_d,add_d,add_d_1,add_d_2,res_add_d,rep_add_d,scor_add_d,rej_add_d) # Soustraction # def soustraction(niveau_sou,valid_7,n_sou_f,sou_f,sou_f_1,sou_f_2,res_sou_f,rep_sou_f,scor_sou_f,rej_sou_f,valid_8,n_sou_n,sou_n,sou_n_1,sou_n_2,res_sou_n,rep_sou_n,scor_sou_n,rej_sou_n,valid_9,n_sou_d,sou_d,sou_d_1,sou_d_2,res_sou_d,rep_sou_d,scor_sou_d,rej_sou_d) : niveau_sou = str(input("\nVeuillez choisir un niveau de difficulté.\n\n1 : Facile\n2 : Normal\n3 : Matheux\n\nNiveau : ")) if niveau_sou == '1' : print("\nL'exercice est composé de 10 calculs simples, au bout de 6 secondes, le calcul est considéré comme faux.") valid_7 = str(input("Pour commencer l'exercice, appuyez sur 1 puis sur ENTREE. ")) while valid_7 != '1' : print("\nJe n'ai pas compris votre demande, veuillez réessayer.") soustraction(niveau_sou,valid_7,n_sou_f,sou_f,sou_f_1,sou_f_2,res_sou_f,rep_sou_f,scor_sou_f,rej_sou_f,valid_8,n_sou_n,sou_n,sou_n_1,sou_n_2,res_sou_n,rep_sou_n,scor_sou_n,rej_sou_n,valid_9,n_sou_d,sou_d,sou_d_1,sou_d_2,res_sou_d,rep_sou_d,scor_sou_d,rej_sou_d) while n_sou_f<11: sou_f_1 = randrange(22)+22 sou_f_2 = randrange(21) res_sou_f = str(sou_f_1 - sou_f_2) print("Calcul n°",n_sou_f,":",sou_f_1,"-",sou_f_2,"= ") t1_sou_f = time() rep_sou_f = str(input("")) t2_sou_f = time() t_sou_f = round(t2_sou_f - t1_sou_f,1) if rep_sou_f == res_sou_f : if t_sou_f > 6 : print("Vous avez mis",t_sou_f,"secondes à répondre, le calcul est considéré comme faux...") else : print("Juste") scor_sou_f = scor_sou_f + 1 else : print("Faux, la réponse était :",res_sou_f,".") n_sou_f = n_sou_f + 1 print("Votre score est de",scor_sou_f,"/10\n\nAppuyer sur 1 puis ENTREE pour rejouer, sinon, appuyer sur 2 puis ENTREE.") rej_sou_f = str(input("")) if rej_sou_f == '1' : accueil(choix) else : print("A la prochaine ") sleep( 2 ) exit() elif niveau_sou == '2' : print("\nL'exercice est composé de 10 calculs complexes, au bout de 6 secondes, le calcul est considéré comme faux.") valid_8 = str(input("Pour commencer l'exercice, appuyez sur 1 puis sur ENTREE. ")) while valid_8 != '1' : print("\nJe n'ai pas compris votre demande, veuillez réessayer.") soustraction(niveau_sou,valid_7,n_sou_f,sou_f,sou_f_1,sou_f_2,res_sou_f,rep_sou_f,scor_sou_f,rej_sou_f,valid_8,n_sou_n,sou_n,sou_n_1,sou_n_2,res_sou_n,rep_sou_n,scor_sou_n,rej_sou_n,valid_9,n_sou_d,sou_d,sou_d_1,sou_d_2,res_sou_d,rep_sou_d,scor_sou_d,rej_sou_d) while n_sou_n<11: sou_n_1 = randrange(100)+100 sou_n_2 = randrange(100)+20 res_sou_n = str(sou_n_1 - sou_n_2) print("Calcul n°",n_sou_n,":",sou_n_1,"-",sou_n_2,"= ") t1_sou_n = time() rep_sou_n = str(input("")) t2_sou_n = time() t_sou_n = round(t2_sou_n - t1_sou_n,1) if rep_sou_n == res_sou_n : if t_sou_n > 6 : print("Vous avez mis",t_sou_n,"secondes à répondre, le calcul est considéré comme faux...") else : print("Juste") scor_sou_n = scor_sou_n + 1 else : print("Faux, la réponse était :",res_sou_n,".") n_sou_n = n_sou_n + 1 print("Votre score est de",scor_sou_n,"/10\n\nAppuyer sur 1 puis ENTREE pour rejouer, sinon, appuyer sur 2 puis ENTREE.") rej_sou_n = str(input("")) if rej_sou_n == '1' : accueil(choix) else : print("A la prochaine ") sleep( 2 ) exit() elif niveau_sou == '3' : print("\nL'exercice est composé de 10 calculs très complexes, au bout de 10 secondes, le calcul est considéré comme faux.") valid_9 = str(input("Pour commencer l'exercice, appuyez sur 1 puis sur ENTREE. ")) while valid_9 != '1' : print("\nJe n'ai pas compris votre demande, veuillez réessayer.") soustraction(niveau_sou,valid_7,n_sou_f,sou_f,sou_f_1,sou_f_2,res_sou_f,rep_sou_f,scor_sou_f,rej_sou_f,valid_8,n_sou_n,sou_n,sou_n_1,sou_n_2,res_sou_n,rep_sou_n,scor_sou_n,rej_sou_n,valid_9,n_sou_d,sou_d,sou_d_1,sou_d_2,res_sou_d,rep_sou_d,scor_sou_d,rej_sou_d) while n_sou_d<11: sou_d_1 = randrange(500)+500 sou_d_2 = randrange(500)+220 res_sou_d = str(sou_d_1 - sou_d_2) print("Calcul n°",n_sou_d,":",sou_d_1,"-",sou_d_2,"= ") t1_sou_d = time() rep_sou_d = str(input("")) t2_sou_d = time() t_sou_d = round(t2_sou_d - t1_sou_d,1) if rep_sou_d == res_sou_d : if t_sou_d > 10 : print("Vous avez mis",t_sou_d,"secondes à répondre, le calcul est considéré comme faux...") else : print("Juste") scor_sou_d = scor_ sou_d + 1 else : print("Faux, la réponse était :",res_sou_d,".") n_sou_d = n_sou_d + 1 print("Votre score est de",scor_sou_d,"/10\n\nAppuyer sur 1 puis ENTREE pour rejouer, sinon, appuyer sur 2 puis ENTREE.") rej_sou_d = str(input("")) if rej_sou_d == '1' : accueil(choix) else : print("A la prochaine ") sleep( 2 ) exit() else : print("Je n'ai pas compris votre demande, veuillez réessayer.") soustraction(niveau_sou,valid_7,n_sou_f,sou_f,sou_f_1,sou_f_2,res_sou_f,rep_sou_f,scor_sou_f,rej_sou_f,valid_8,n_sou_n,sou_n,sou_n_1,sou_n_2,res_sou_n,rep_sou_n,scor_sou_n,rej_sou_n,valid_9,n_sou_d,sou_d,sou_d_1,sou_d_2,res_sou_d,rep_sou_d,scor_sou_d,rej_sou_d) # Multiplication # def multiplication(niveau_mul,valid_4,n_mul_f,mul_f,mul_f_1,mul_f_2,res_mul_f,rep_mul_f,scor_mul_f,rej_mul_f,valid_5,n_mul_n,mul_n,mul_n_1,mul_n_2,res_mul_n,rep_mul_n,scor_mul_n,rej_mul_n,valid_6,n_mul_d,mul_d,mul_d_1,mul_d_2,res_mul_d,rep_mul_d,scor_mul_d,rej_mul_d) : niveau_mul = str(input("\nVeuillez choisir un niveau de difficulté.\n\n1 : Facile\n2 : Normal\n3 : Matheux\n\nNiveau : ")) if niveau_mul == '1' : print("\nL'exercice est composé de 10 calculs simples, au bout de 6 secondes, le calcul est considéré comme faux.") valid_4 = str(input("Pour commencer l'exercice, appuyez sur 1 puis sur ENTREE. ")) while valid_4 != '1' : print("\nJe n'ai pas compris votre demande, veuillez réessayer.") multiplication(niveau_mul,valid_4,n_mul_f,mul_f,mul_f_1,mul_f_2,res_mul_f,rep_mul_f,scor_mul_f,rej_mul_f,valid_5,n_mul_n,mul_n,mul_n_1,mul_n_2,res_mul_n,rep_mul_n,scor_mul_n,rej_mul_n,valid_6,n_mul_d,mul_d,mul_d_1,mul_d_2,res_mul_d,rep_mul_d,scor_mul_d,rej_mul_d) while n_mul_f<11: mul_f_1 = randrange(10) mul_f_2 = randrange(10) res_mul_f = str(mul_f_1 * mul_f_2) print("Calcul n°",n_mul_f,":",mul_f_1,"x",mul_f_2,"= ") t1_mul_f = time() rep_mul_f = str(input("")) t2_mul_f = time() t_mul_f = round(t2_mul_f - t1_mul_f,1) if rep_mul_f == res_mul_f : if t_mul_f > 6 : print("Vous avez mis",t_mul_f,"secondes à répondre, le calcul est considéré comme faux...") else : print("Juste") scor_mul_f = scor_mul_f + 1 else : print("Faux, la réponse était :",res_mul_f,".") n_mul_f = n_mul_f + 1 print("Votre score est de",scor_mul_f,"/10\n\nAppuyer sur 1 puis ENTREE pour rejouer, sinon, appuyer sur 2 puis ENTREE.") rej_mul_f = str(input("")) if rej_mul_f == '1' : accueil(choix) else : print("A la prochaine ") sleep( 2 ) exit() elif niveau_mul == '2' : print("\nL'exercice est composé de 10 calculs complexes, au bout de 15 secondes, le calcul est considéré comme faux.") valid_5 = str(input("Pour commencer l'exercice, appuyez sur 1 puis sur ENTREE. ")) while valid_5 != '1' : print("\nJe n'ai pas compris votre demande, veuillez réessayer.") multiplication(niveau_mul,valid_4,n_mul_f,mul_f,mul_f_1,mul_f_2,res_mul_f,rep_mul_f,scor_mul_f,rej_mul_f,valid_5,n_mul_n,mul_n,mul_n_1,mul_n_2,res_mul_n,rep_mul_n,scor_mul_n,rej_mul_n,valid_6,n_mul_d,mul_d,mul_d_1,mul_d_2,res_mul_d,rep_mul_d,scor_mul_d,rej_mul_d) while n_mul_n<11: mul_n_1 = randrange(16)+6 mul_n_2 = randrange(16)+6 res_mul_n = str(mul_n_1 * mul_n_2) print("Calcul n°",n_mul_n,":",mul_n_1,"x",mul_n_2,"= ") t1_mul_n = time() rep_mul_n = str(input("")) t2_mul_n = time() t_mul_n = round(t2_mul_n - t1_mul_n,1) if rep_mul_n == res_mul_n : if t_mul_n > 15 : print("Vous avez mis",t_mul_n,"secondes à répondre, le calcul est considéré comme faux...") else : print("Juste") scor_mul_n = scor_mul_n + 1 else : print("Faux, la réponse était :",res_mul_n,".") n_mul_n = n_mul_n + 1 print("Votre score est de",scor_mul_n,"/10\n\nAppuyer sur 1 puis ENTREE pour rejouer, sinon, appuyer sur 2 puis ENTREE.") rej_mul_n = str(input("")) if rej_mul_n == '1' : accueil(choix) else : print("A la prochaine ") sleep( 2 ) exit() elif niveau_mul == '3' : print("\nL'exercice est composé de 10 calculs très complexes, au bout de 20 secondes, le calcul est considéré comme faux.") valid_6 = str(input("Pour commencer l'exercice, appuyez sur 1 puis sur ENTREE. ")) while valid_6 != '1' : print("\nJe n'ai pas compris votre demande, veuillez réessayer.") multiplication(niveau_mul,valid_4,n_mul_f,mul_f,mul_f_1,mul_f_2,res_mul_f,rep_mul_f,scor_mul_f,rej_mul_f,valid_5,n_mul_n,mul_n,mul_n_1,mul_n_2,res_mul_n,rep_mul_n,scor_mul_n,rej_mul_n,valid_6,n_mul_d,mul_d,mul_d_1,mul_d_2,res_mul_d,rep_mul_d,scor_mul_d,rej_mul_d) while n_mul_d<11: mul_d_1 = randrange(25)+10 mul_d_2 = randrange(25)+10 res_mul_d = str(mul_d_1 * mul_d_2) print("Calcul n°",n_mul_d,":",mul_d_1,"x",mul_d_2,"= ") t1_mul_d = time() rep_mul_d = str(input("")) t2_mul_d = time() t_mul_d = round(t2_mul_d - t1_mul_d,1) if rep_mul_d == res_mul_d : if t_mul_d > 20 : print("Vous avez mis",t_mul_d,"secondes à répondre, le calcul est considéré comme faux...") else : print("Juste") scor_mul_d = scor_mul_d + 1 else : print("Faux, la réponse était :",res_mul_d,".") n_mul_d = n_mul_d + 1 print("Votre score est de",scor_mul_d,"/10\n\nAppuyer sur 1 puis ENTREE pour rejouer, sinon, appuyer sur 2 puis ENTREE.") rej_mul_d = str(input("")) if rej_mul_d == '1' : accueil(choix) else : print("A la prochaine ") sleep( 2 ) exit() ### III - Lancement du logiciel ### accueil(choix)