1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
from tkinter import *
from random import *
class bille:
def __init__(self):
self.i=0
self.x=0
self.y=0
self.dx=0
self.dy=0
def deplace(self,balle):
canvas.move(balle[self.i],self.dx,self.dy)
self.x=canvas.coords(balle[self.i])[2]
self.y=canvas.coords(balle[self.i])[3]
bille.mur(self)
tk.after(20,bille.deplace,self,balle)
def mur(self):
i=self.i
if not(20 < self.y < 310):
self.dy=(-1)*self.dy
if not(20 < self.x < 470):
self.dx=(-1)*self.dx
def demarrer():
global N,tx,ty,tdx,tdy,balle
canvas.delete(ALL)
EN=entree_N.get()
N=int(EN)
tx,ty,tdx,tdy,balle=[1]*N,[1]*N,[1]*N,[1]*N,[1]*N
for l in range(N):
tx[l],ty[l]=randint(30,420),randint(30,250)
tdx[l],tdy[l]=4,4
for i in range(N):
balle[i]=canvas.create_oval(tx[i],ty[i],tx[i]+15,ty[i]+15,fill='red',outline='black')
for i in range(N):
p=bille()
p.i=i
p.x=tx[i]
p.y=ty[i]
p.dx=tdx[i]
p.dy=tdy[i]
p.deplace(balle)
#Programme Principal
tk=Tk()
canvas=Canvas(tk,width = 480, height = 320 , bd=0, bg="white")
canvas.pack()
#Creation d'un bouton "Démarrer"
Boutton_Demarrer=Button(tk,text="Démarrer",command=demarrer)
Boutton_Demarrer.pack(side=LEFT)
#Creation d'un bouton "Detruire":
Bouton_Detruire=Button(tk, text ='Quitter', command = tk.destroy)
#Ajouter l'affichage du bouton dans la fenêtre tk:
Bouton_Detruire.pack(side=RIGHT)
# Nombre de balles N
entree_N=Entry(tk,width=3)
entree_N.pack()
#Boucle principale:
tk.mainloop() |
Partager