Interface Graphique : Gestion du temps - exercices

Nombre de jours avant Noël

Afficher le nombre de jours restants avant le prochain Noël.

Résolution de l'exercice "Nombre de jours avant Noël".


import time

# La date de noel en Affichage formaté
noel_AF = time.strftime("25/12/%Y")
# La date de noel en structure temps
noel_ST=time.strptime(noel_AF,"%d/%m/%Y")
# La date de noel en heure POSIX
noel_POSIX=time.mktime(noel_ST)

maintenant = time.time()
temps = noel_POSIX - maintenant

if temps < 0:
    print ("C'est passé pour cette année :(")
else :
    j=int((temps)/(60*60*24))
    print ("Il faut encore attendre",j,"jours.")

prochain " vendredi 13"

Afficher le nombre de jours avant le prochain " vendredi 13".

Résolution de l'exercice "le prochain " vendredi 13"".


import time
jour = 0
aujourdhui = time.time()
ST = time.localtime(60 * 60 * 24 * jour + aujourdhui)
while ST.tm_mday != 13 or ST.tm_wday != 4 :
    jour=jour+1
    ST=time.localtime(60 * 60 * 24 * jour + aujourdhui)
print ("Le prochain Vendredi 13 est dans",jour,"jours.")
print (time.strftime("Nous serons le Vendredi 13/%m/%Y",ST))

position aléatoire

Voici un programme :


from tkinter import *
import time,random
def rebours():
    actu = time.time()
    reste = int(round(fin - actu))
    if reste > 0 :
        Fond.itemconfig(T,text=str(reste))
        fenetre.after(1000,rebours)
    else :
        for t in range(130) :
            Fond.itemconfig(T,text='BOOM !', font=('Arial',t))
            Fond.update()
fenetre=Tk()
fenetre.title("BOOM !")
fenetre.geometry('600x600')
Fond=Canvas(fenetre,bg="white", width=600, height = 600)
Fond.place(x=0,y=0)
T = Fond.create_text(300,300,text="10",font=('Arial',100))
fin, actu = time.time() + 10, time.time()
rebours()
fenetre.mainloop()

1. Modifier ce programme en créant un bouton ou le joueur a 10 secondes pour désamorcer une bombe en cliquant sur ce bouton.

2. Améliorer le programme pour que le bouton change de position d’une façon aléatoire toutes les secondes.

Résolution de l'exercice "Position fixe".

Question 1


from tkinter import *
import time,random

def rebours():
    global desamorcer
    if desamorcer :
        Fond.itemconfig(T,text="Ouf !")
        bouton.place_forget()
    else :
        actu = time.time()
        reste = int(round(fin - actu))
        if reste > 0 :
            Fond.itemconfig(T,text=str(reste))
            fenetre.after(1000,rebours)
        else :
            for t in range(130) :
                Fond.itemconfig(T,text='BOOM !', font=('Arial',t))
                Fond.update()
def stop():
    global desamorcer
    desamorcer = True
    
fenetre=Tk()
fenetre.title("BOOM !")
fenetre.geometry('600x600')

Fond=Canvas(fenetre,bg="white", width=600, height = 600)
Fond.place(x=0,y=0)
bouton = Button(fenetre, text='Désamorcer', command = stop)
bouton.place(x=100,y=100)
desamorcer = False
T = Fond.create_text(300,300,text="10",font=('Arial',100))
fin, actu = time.time() + 10, time.time()
rebours()

fenetre.mainloop()

Résolution de l'exercice "Position aléatoire".

Question 2


from tkinter import *
import time,random

def rebours():
    if desamorce :
        Fond.itemconfig(T,text='OUF !')
        B.place_forget()
    else :
        actu = time.time()
        reste = int(round(fin - actu))
        if reste > 0 :
            Fond.itemconfig(T,text=str(reste))
            xB = random.randint(0,550)
            yB = random.randint(0,550)
            B.place(x=xB,y=yB)
            fenetre.after(1000,rebours)
        else :
            Fond.itemconfig(T,text='BOOM !')

def stop():
    global desamorce
    desamorce = True

fenetre=Tk()
fenetre.title("BOOM !")
fenetre.geometry('600x600')

Fond=Canvas(fenetre,bg="white", width=600, height = 600)
Fond.place(x=0,y=0)

T = Fond.create_text(300,300,text="10",font=('Arial',100,'bold'))
B = Button(fenetre,text='OFF',command=stop)
#B.place(x=500,y=500)

desamorce = False
fin, actu = time.time() + 10, time.time()
rebours()

fenetre.mainloop()

Le marcheur

A l’aides des images ci-dessous que vous pouvez télécharger, réaliser un programme qui déplace le personnage de la gauche vers la droite. Quand celui-ci sort d’un côté de l’écran, il réapparaîtra de l’autre.

exercice4_temps Pour télécharger les images

Résolution de l'exercice "Le marcheur".


from tkinter import *

def anim():
    global x, frame, img
    x = x + 40
    if x > 1000 : x = -500
    frame = frame + 1
    if frame == 9 : frame = 1
    img = PhotoImage(file="Images/matt"+str(frame)+".gif")
    Fond.itemconfig(Matt, image = img)
    Fond.coords(Matt,x,0)
    fenetre.after(10,anim)

fenetre=Tk()
fenetre.title("Le marcheur")

Fond=Canvas(fenetre,width=1000,height=300,bg="white")
Fond.grid()

img = PhotoImage(file="Images/matt1.gif")
Matt = Fond.create_image(-250,0,image=img,anchor='nw')

x, frame = -250, 1
anim()
fenetre.mainloop()