Animation avec tkinter

On considère le script suivant: (disque.py)
from tkinter import *
x0=10
y0=10
fenetre = Tk()
fenetre.title("animation")
Moncanvas=Canvas(fenetre,width=300,height=300,background="yellow")
disque=Moncanvas.create_oval(x0,y0,x0+20,y0+20,width=2,fill="red")
Moncanvas.pack()
fenetre.mainloop()
 
Exécuter ce script.

Activité 1:

Le but de cet activité est de reprendre le programme ci-dessus et d'y ajouter quatre boutons permettant de faire bouger la balle en bas, en haut, à gauche, à droite.

Activité 2:

On considère le script suivant: (balle_recur1.py)
 
from tkinter import *
def depl():
    global x0
    x0=x0+10
    Moncanvas.coords(disque,x0,y0,x0+20,y0+20)
    fenetre.after(50,depl) #La fonction s'appelle elle même toutes les 50 millisecondes

#------------------coeur du programme-----------------------------------

x0=10
y0=10
fenetre=Tk()
fenetre.title("recursivité")
Moncanvas=Canvas(fenetre,width=300,height=300,background="yellow")
disque=Moncanvas.create_oval(x0,y0,x0+20,y0+20,width=2,fill="red")
Moncanvas.pack()
bouton1=Button(fenetre,text="commencer",command=depl)
bouton1.pack()
fenetre.mainloop()
Exécuter ce script.

Activité 3:

On considère le programme suivant: (clic_souris.py)
from tkinter import*
def clic(event):#fonction detectant le clic de la souris et dessinant un disque.
	a=event.x
	b=event.y
	disque=Moncanvas.create_oval(a,b,a+20,b+20,width=2,fill="blue")

fenetre=Tk()
fenetre.title("clicsouris")
Moncanvas=Canvas(fenetre,width=300,height=300,background="yellow")
Moncanvas.pack()
Moncanvas.bind("<Button-1>",clic)#appel de la fonction clic lorsqu'on clique dans Moncanvas dans le canvas
fenetre.mainloop()
TP 1:
En vous aidant du programme ci dessous, créer un programme qui dessine des cercles de couleurs et de tailles différentes choisies aléatoirement.
Ajouter un bouton qui permet d'effacer le dessin.
TP2:
Créer un jeu faisant intervenir les notions vues dans les trois activités précédentes.