Python 3.5.0 (v3.5.0:374f501f4567, Sep 12 2015, 11:00:19) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type "copyright", "credits" or "license()" for more information. >>> WARNING: The version of Tcl/Tk (8.5.9) in use may be unstable. Visit http://www.python.org/download/mac/tcltk/ for current information. >>> from tkinter import* >>> class Garbage(Frame): def __init__(self): Frame.__init__(self) #constructeur de la classe parente self.c = Canvas(self, width = 400, height = 300, bg = 'ivory') self.c.pack( padx=5, pady=3) self.c.bind("", self.mouseDown) self.c.bind("",self.mouseMove) self.c.bind("", self.fall) b_fin = Button(self, text ='Terminer', bg ='royal blue', fg = 'white' , font = ('Helvetica' , 10 , 'bold'), command = self.quit) b_fin.pack(pady =2) self.c.create_line(100,250,150,250) #création de 3 poubelles self.c.create_line(200,250,250,250) self.c.create_line(300,250,350,250) self.c.create_line(100,200,100,250) self.c.create_line(150,200,150,250) self.c.create_line(200,200,200,250) self.c.create_line(250,200,250,250) self.c.create_line(300,200,300,250) self.c.create_line(350,200,350,250) self.pack() def mouseDown(self, event): #création d'un objet cercle à l'endroit du clique self.currObject = None self.c.create_oval(event.x,event.y,event.x+15,event.y+15,fill ='red') self.x1, self.y1 = event.x, event.y self.selObject = self.c.find_closest(self.x1, self.y1) self.c.itemconfig(self.selObject, width =3) def mouseMove(self,event): #on fait bouger notre objet x2, y2 = event.x, event.y dx , dy = x2 -self.x1, y2 -self.y1 if self.selObject: self.c.move(self.selObject, dx, dy) self.x1 , self.y1 = x2, y2 def fall(self,event): #le relachement du clique de la souris entraine la chute de l'objet x3, y3 = event.x, event.y compteur = 0 self.chaine = Label(self) self.c.itemconfig(self.selObject , width =1) for k in range (2500): self.c.move(self.selObject, x3 ,y3+k*0.1) # l'objet chute vers le bas avec un pas de 0,1 pixel if y3 + k*0.1 >= 200 and (( 100<=x3<=150) or (200<=x3<=250) or (300<=x3<=350)): #si l'objet tombe dans une poubelle self.c.move(self.selObject, 600,600) #on la fait sortir hors du cadre afin de la faire disparaitre self.selObject = None compteur += 1 #notre score self.c.move(self.selObject , 600, 600) self.selObject = None self.chaine.configure(text = 'Score' + str(compteur)) self.chaine.pack(side = LEFT) >>> if __name__ = '__main__': Garbage().mainloop()