# -*- coding: utf-8 -*- """ consigne : - bien étudier le code et comprendre le role de dx1,dy1 et flag - créer une deuxième balle dont le mouvement est aléatoire et différent de la balle 1 """ from tkinter import * from random import randint def start(): """fonction qui déclenche le déplacement de la balle """ global flag,dx1,dy1 flag=1 dx1,dy1=randint(-11,11),randint(-11,11) #on affecte une valeur aléatoire aux déplacements move() #on lance le déplacement def stop(): """ fonction qui arrete le mouvement de la balle """ global flag flag=0 def move(): """ déplace la balle et fonction qui s'appelle toutes les 50 millisecondes """ global x1,y1,dx1,dy1 x1,y1=x1+dx1,y1+dy1 if x1<10 or x1>390:#la balle rebondit si elle frappe le bord gauche ou droit dx1=-dx1 if y1<10 or y1>390:#la balle rebondit si elle frappe le bord haut ou bas dy1=-dy1 zone.coords(balle1,x1,y1,x1+10,y1+10)#on dessine la balle sur le canvas if flag==1: fenetre.after(50,move)#on déplace la balle toutes les 50 ms #les positions initiales de la balle 1 x1,y1=200,200 #une variable initialisée à 0 lorsque la balle est à l'arrêt, et mise à 1 autrement flag=0 fenetre = Tk() #on crée la fenêtre fenetre.geometry("500x500")#on choisit la taille de la fenêtre fenetre.configure(bg="yellow") # couleur de fond d'écran de fenetre zone = Canvas(fenetre,bg="white",height=400, width=400) zone.grid(row=0,column=0,padx=5,pady=5) balle1=zone.create_oval(x1,y1,x1+10,y1+10,width=2,fill="red")#on dessinne une balle sur le canvas # création des boutons et de leur positionnement boutonGO = Button(fenetre, text="GO", width =3, command=start) boutonGO.grid(row=1,column=1,padx=5,pady=5) boutonSTOP = Button(fenetre, text="STOP", width =3, command=stop) boutonSTOP.grid(row=2,column=1,padx=5,pady=5) fenetre.mainloop()