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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
   |  
from tkinter import*
from random import randrange
from math import*
 
#On definie les paramétres
XMAX,YMAX=550,600
X,Y=265,550
DX,DY=-10,-10
xbar,ybar=275,580
RAYON=8
flag = 0
 
#Mouvement de la balle
def move():
    global X,Y,DX,DY,XMAX,YMAX,balle,flag,RAYON
    xp, yp = X+DX, Y+DY
 
    #rebond a droite
    if xp > YMAX-35 :
        DX=-DX
    #rebond a gauche
    if xp < 0:
        DX=-DX
    #rebond en haut
    if yp <0:
        DY=-DY
    #rebond sur la raquette
    if yp >= ybar-10  and xp < xbar+50 and xp > xbar-50:
        DY = -DY
 
 
 
    X, Y = X+DX, Y+DY
    Can1.coords(balle,X-RAYON,Y-RAYON,X+RAYON,Y+RAYON)
 
 
    if flag > 0:
        fenetre.after(45,move)
 
 
def start(event):
    global flag
    flag=flag+1
    if flag==1:
        move()
    "démarrer"
 
def stop(event):
    "arret de l'animation"
    global flag
    flag =0
 
#Pour quitter le programme    
def Quitter (event):
    fenetre.destroy()
 
 
 
def Clavier(event):
 
    global xbar,ybar
    touche=event.keysym
 
 
    if touche == 'Left':
        xbar=xbar-30
 
    if touche == 'Right':
        xbar=xbar+30
 
    if touche == 'Escape':
        fenetre.destroy
 
 
    Can1.coords(raquette,xbar-50,ybar-8,xbar+50,ybar+8)
 
 
 
#Définition de la fenetre 
fenetre = Tk() 
fenetre.title('casse briques')
#Indique les normes du Canevas
Can1 = Canvas(fenetre, width = XMAX, height = YMAX, bg='white')
Can1.pack()
#Définition du boutton "Start"
Button(fenetre, text='Démarrer',command=start).pack(side=LEFT, padx=15,pady=10)
Can1.bind("<Return>",start)
#Définition du boutton "Quitter"
Button(fenetre, text='Quitter',command=fenetre.destroy).pack(side=RIGHT,padx=15,pady=10)
Can1.bind("<Escape>",Quitter)
#Cliquer sur p pour mettre en pause
Can1.bind("<p>",stop)
 
#Création de la raquette et de la balle 
raquette = Can1.create_rectangle(xbar-50,ybar-8,xbar+50,ybar+8,width=2,fill='black')
balle = Can1.create_oval(X-RAYON,Y-RAYON,X+RAYON,Y+RAYON,width=1,fill='red')
#Création des briques
for yb in range(50, 150, 20):
    for xb in range(50, 500, 50):
        brique=Can1.create_rectangle(xb, yb, xb+50, yb+20, fill='green') 
 
 
 
 
 
Can1.focus_set()
 
Can1.bind('<Key>', Clavier) 
 
fenetre.mainloop() | 
Partager