#!/usr/bin/python # -*- coding: utf-8 -*

publicité
#!/usr/bin/python
# -*- coding: utf-8 -*from Tkinter import*
import time
#choix sequence
def niveau_sequence(event):
global n1,n,ofi,fichier
n1=entre1.get()
if int(n1)<=n:
fichier="sequences"+str(n1)
ofi=open(fichier,'r')
entre_seq.configure(text="Sequence:%s"%(n1))
#identification
entre=""
n1=n="0"
import pygame
from pygame.locals import*
#initialisation de pygame
pygame.init()
fen1=pygame.display.set_mode((128,128))
fond=pygame.image.load("hp.png").convert_alpha()
fen1.blit(fond,(0,0))
pygame.display.flip()
son=pygame.mixer.Sound("jinglesncf.wav")
son1=pygame.mixer.Sound("sifflet.wav")
#declaration des variables
fichier="sequences"+str(n)
heu=25
minu=60
a=1000
h=0;m=0;s=0;inter=0
swith=0
ofi=open(fichier,'r') #ouverture fichier
cliche="acceuil.gif"
#mise en marche du chrono
def marche_chrono():
global inter,even,a
a=1000
if inter==0:
inter=1
chrono()
#arret du chrono
def stop_chrono():
global inter
inter=0
#remise a zero
def reset_chrono():
global h,m,s,ofi,swith
h=m=s=0
temp.configure(text="%i : %i : %i "%(h,m,s))
ofi=open(fichier,'r')
swith=0
#acceleration du chrono
def acc():
global a
if a>100:
a=a/10
#fonction chronometre
def chrono():
global h,m,s
if inter:
#variable marche/arret du chrono
if s<=59:
temp.configure(text="%i : %i : %i "%(h,m,s)) #base du decompte de secondes,avec
affichage
fenetre.after(a,chrono)
#pause du programme en ms
if heu==h and minu==m and s==0:
son.play()
if heu==h and minu==m and s==59:
son1.play()
evenement()
s+=1
if s>59:
#incrementation des minutes et raz des secondes
s=0
m+=1
if m>59:
#incrementation des heures et raz des minutes
h+=1
m=0
chrono()
#lecture sequenciel des evenements
def sequences():
son.stop()
global heu,minu,mess,seq,swith,photo
seq=ofi.readline()
if seq!="":
heu=int(seq[:2])
minu=int(seq[3:5])
cliche=seq[6:14]
photo=PhotoImage(file=cliche)
#fenetre affichage image
fenimage.create_image(320,240,image=photo)
mess=seq[15:]
even.configure(font=("sans",12),text="%s:%s-%s"%(seq[:2],seq[3:5],mess),fg='green')
#prochain evenements
marche_chrono()
else:
even.configure(text="FIN de sequence",fg="red") #arret quand le fichier sequence est fini
photo=PhotoImage(file="acceuil.gif")
fenimage.create_image(320,240,image=photo)
fin_horloge()
if swith==0:
top_horloge()
swith=1
#affiche evenements
def evenement():
even.configure(font=("sans",15),text=mess,fg="red")
stop_chrono()
#affichage de l'heure debut
def top_horloge():
global d
d=time.time()
#recuperation en seconde de l'heure systeme
dh=time.localtime(d)[3]
dm=time.localtime(d)[4]
ds=time.localtime(d)[5]
dhorloge.configure(text="debut: %i :%i :%i "%(dh,dm,ds))#affiche l'heure systeme au demarrage
#fin de jeu
def fin_horloge():
global rm,swith
if swith==1:
f=time.time()
fh=time.localtime(f) [3]
fm=time.localtime(f) [4]
fs=time.localtime(f) [5]
fhorloge.configure(text="Fin: %i :%i :%i "%(fh,fm,fs))#affiche l'heure de fin
r=f-d
rh=time.localtime(r)[3]
rm=time.localtime(r)[4]
rs=time.localtime(r)[5]
rhorloge.configure(text="temps de jeu=%i :%i :%i "%(rh,rm,rs))#temps de jeu
son.stop()
stop_chrono()
evalue()
#evaluation en fin de sequence
def evalue():
diff=rm-m
if diff>=-1 and diff<=1:
evaluer.configure(text="tres bien!passe a une autre sequence")
niveau()
elif diff>=-3 and diff<-1 or diff>1 and diff<=3:
evaluer.configure(text="bien!essaye une autre sequence")
niveau()
elif diff>=-5 and diff<-3 or diff>3 and diff<=5:
evaluer.configure(text="moyen!il faud faire mieux recommence")
elif diff>=-10 and diff<-5 or diff>5 and diff<=10:
evaluer.configure(text="mauvais! recommence")
else:
evaluer.configure(text="trop nul!")
#incrementation niveau
def niveau():
global n,ofi,fichier
if int(n1)==n:
n=n+1
niv.configure(text="choisit ta sequence max=%s"%(n))
fichier="sequences"+str(n)
ofi=open(fichier,'r')
entre_seq.configure(text="Sequence:%s"%(n))
#fermeture des fenetres
def quitte():
pygame.quit()
fenetre.destroy()
#fenetre principale
fenetre=Tk()
fenetre.title("regulateur de trafic")
fenetre.geometry("1024x768")
entre_part=Label(fenetre,text="Maintenant %s essaye de faire mieux!!"%(entre))
entre_part.grid(row=1,column=0)
#fenetre controle chrono
fenbouton=Frame(fenetre,bd=2,relief=RIDGE)
fenbouton.grid(row=2,column=0)
Label(fenbouton,text="controle du chrono").grid()
Button(fenbouton,text="ChronoX10",bg="light blue",command=acc).grid(row=1)
Button(fenbouton,text="Reset",bg="light blue",command=reset_chrono).grid(row=1,column=1)
Button(fenbouton,text="Marche",bg="orange",command=marche_chrono).grid(row=2,column=0)
Button(fenbouton,text="Arret",bg="orange",command=stop_chrono).grid(row=2,column=1)
#fentre affichage du chrono
fentemp=Frame(fenetre,bd=2,relief=RIDGE)
fentemp.grid(row=2,column=1)
temp=Label(fentemp,font=('sans',30,'bold'),text="Chronometre",bg='white',fg="purple")
temp.grid()
dhorloge=Label(fentemp)
dhorloge.grid(row=1,column=0)
fhorloge=Label(fentemp)
fhorloge.grid(row=2,column=0)
rhorloge=Label(fentemp)
rhorloge.grid(row=3,column=0)
#fenetre affichage des sequences programme
feneven=Frame(fenetre,bd=2,relief=RIDGE)
feneven.grid(row=3,column=1)
niv=Label(feneven,text="Choisit ta sequence max=%s!"%(n))
niv.grid()
entre1=Entry(feneven)
entre1.bind("<Return>",niveau_sequence)
entre1.grid(row=1,column=0)
entre_seq=Label(feneven,font=("sans",20,"bold"),text="Sequences:%s"%(n),fg="blue")
entre_seq.grid(row=2)
even=Label(feneven)
even.grid(row=3,column=0)
evaluer=Label(feneven)
evaluer.grid(row=4,column=0)
Button(feneven,text="Valider",bg="green",command=sequences).grid(row=5,column=0,sticky=W)
#Button(feneven,text="Stop",bg="red",command=fin_horloge).grid(row=5,column=1)
#fenetre affichage image
fenimage=Canvas(fenetre,width=640,height=480,bd=2,relief=RIDGE)
photo=PhotoImage(file=cliche)
fenimage.create_image(320,240,image=photo)
fenimage.grid(row=3,column=0)
Button(fenetre,text="Quitter",command=quitte).grid(columnspan=2)
fenetre.mainloop()
Téléchargement