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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
|
from tkinter import*
import random
import fgmain
score=0
Q=10
def ExTime():
'''exercice dilatation du temps'''
def BackMenu():
'''retourner au menu'''
global score
global Q
score=0
Q=10
ScoreLab.config(text=["Score:",score])
QLab.config(text=["Question:",Q])
fenetre.destroy()
fgmain.Menu()
def replay():
global score
global Q
score=0
Q=10
ScoreLab.config(text=["Score:",score])
QLab.config(text=["Question:",Q])
fenetre.destroy()
ExTime()
def ExTimeEnd():
'''fenetre de fin de jeu'''
global score
PopupEnd=LabelFrame(canvas,text="Fin du jeu",height=700,width=1400)
PopupEnd.place(x=0,y=0)
ScoreLabEnd=Label(PopupEnd,text=("Score:",score))
ScoreLabEnd.place(x=700,y=250)
ReplayEnd=Button(PopupEnd, text="rejouer",command=replay)
ReplayEnd.place(x=700,y=350)
ReturnMenuEnd=Button(PopupEnd, text="menu des matieres",command=BackMenu)
ReturnMenuEnd.place(x=700,y=450)
def ExTimeCheck(a,b,c):
'''compare la reponse de l'utilisateur au temps calcule'''
global Q
global score
if a.get()==b:
CheckLab=Label(canvas,text="Bravo : +1 point")
CheckLab.place(x=600,y=450)
score+=1
elif a.get()!=b:
CheckLab=Label(canvas,text=("-1 point. La bonne reponse est",b))
CheckLab.place(x=600,y=450)
score-=1
#modifier l'etiquette du score et du nombre de questions
ScoreLab.config(text=["Score:",score])
Q-=1
QLab.config(text=["Question:",Q])
#si Q>0, generer de nouvelles valeurs
if Q>0:
c.destroy()
ExTimeSpeed()
#sinon lancer la fonction de fin de jeu
elif Q==0:
ExTimeEnd()
def ExTimeSpeed():
'''genere la vitesse, coeff entre par l'utilisateur'''
popup.destroy()
ReturnMenu.destroy()
play.destroy()
#celerite de la lumiere
lux=300000000
#Temps propre
TimeProper=random.uniform(1.00,100.00)
TimeProper=round(TimeProper,2)
TimeProperLab=Label(canvas,text=("Le temps propre est:",TimeProper))
TimeProperLab.place(x=600,y=200)
SpeedFormat=random.randint(1,2)
if SpeedFormat==1:
#vitesse sous forme de fraction de la celerite
speedraw=random.uniform(0.1,0.9)
speedraw=round(speedraw,2)
FrameSpeed=Label(canvas,text=(speedraw,"c"))
FrameSpeed.place(x=600,y=300)
#calcul du temps mesure
speed=speedraw*lux
RappSpeed=(speed**2)/(lux**2)
coeff=1/((1-RappSpeed)**0.5)
TimeM=TimeProper*coeff
TimeM=round(TimeM,2)
else:
#vitesse en m/s (v> c/10 pour variation de 1% entre TimeP et TimeM)
speedraw=random.randint(200000000,290000000)
speedraw=round(speedraw,2)
FrameSpeed=Label(canvas,text=(speedraw,"m/s"))
FrameSpeed.place(x=600,y=300)
RappSpeed=(speedraw**2)/(lux**2)
coeff=1/((1-RappSpeed)**0.5)
TimeM=TimeProper*coeff
TimeM=round(TimeM,2)
#entree de la reponse
ImputLab=Label(canvas,text="quel est le temps mesure?")
ImputLab.place(x=600,y=400)
Imput=Entry(canvas, textvariable=answer)
Imput.place(x=600,y=500)
#bouton valider, lancement du comparateur reponses
submit=Button(canvas,text="valider",command=lambda r1=answer,r2=TimeM,r3=FrameSpeed:ExTimeCheck(r1,r2,r3))
submit.place(x=700,y=500)
#Fond
fenetre=Tk()
fenetre.title("Exercice dilatation du temps")
canvas = Canvas(fenetre, width=1400, height=700,bg="black")
canvas.pack()
#compteur de point
ScoreLab=Label(canvas,text=("Score:",score),bg="white",font=("Courier",20))
ScoreLab.place(x=670,y=600)
#compteur de question
QLab=Label(canvas,text=("Question:",Q),bg="white",font=("Courier",20))
QLab.place(x=650,y=550)
#menu de l'exercice
popup=Label(canvas,text=("Temps propre et temps mesure"),bg="white",fg="black",height=10,borderwidth=20)
popup.place(x=600,y=300)
ReturnMenu=Button(canvas, text="menu des matieres",command=BackMenu)
ReturnMenu.place(x=660,y=450)
answer = DoubleVar()
play=Button(canvas, text="jouer",command=ExTimeSpeed)
play.place(x=700,y=420)
fenetre.mainloop() |
Partager