| 12
 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
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 
 | #!/usr/bin/env python
# -*- coding: utf-8 -*-
 
from random import randrange
from Tkinter import *
 
 
# zone de définition des fonctions
 
def newgame():#definition des aprametres du jeu    
    global rondX, rondY, rectX, rectY, carreX, carreY, dep, direction, id_rond, id_rect, id_carre
     # initialisation de dep
    dep = 3  # on démarre à 3 pixels
 
    # création de l'objet à attraper
    rondX = randrange(5, 495)
    rondY = randrange(5, 495)
    id_rond=canevas.create_oval(rondX, rondY, rondX+5, rondY+5, outline='white', fill='green')
 
    # création de l'obstacle
    rectX = randrange(5, 495)
    rectY = randrange(5, 495)
    id_rect=canevas.create_rectangle(rectX, rectY, rectX+20, rectY+10, outline='black', fill='black')
 
    # mise en mouvement possible du carré
    direction = ''
    move ()
 
    # utilisation des flèches du clavier
    fenetre.bind("<Right>", right)
    fenetre.bind('<Left>', left)
    fenetre.bind('<Up>', up)
    fenetre.bind('<Down>', down)
# end def
 
 
def move():#definitions des mouvements du carré
    global carreX, carreY, dep, direction, id_carre
     # mise en mouvement
    if direction == 'gauche':
        carreX -= dep
    elif direction == 'droite':
        carreX += dep
    elif direction == 'haut':
        carreY -= dep              
    elif direction == 'bas':
        carreY += dep   
    # end if
 
    #acceleration du carré possible
    if dep <= 20:
        dep +=0.1
    # déplacement du carré
    canevas.coords(id_carre, carreX, carreY, carreX+10, carreY+10)
    # on reprend le prochain pas dans 700 ms
    fenetre.after(100, move)
 
    # Si sortie d'un côté, entrée de l'autre côté
    if carreY > 500:
        carreY = 0
    elif carreY < 0:
        carreY = 500
    # end if
    if carreX > 500:
        carreX = 0
    elif carreX < 0:
        carreX = 500
    # end if
 
    if (carreX, carreY) == (rondX, rondY):
        canevas.delete(id_carre)
# end def
 
# directions
def left (event):#mouvement vers la gauche
    global direction
    direction = 'gauche'
 
# end def
def right (event):#mouvement vers la droite
    global direction
    direction = 'droite'
 
# end def
def up (event):#mouvement vers le haut
    global direction
    direction = 'haut'
 
# end def
def down (event):#mouvement vers le bas
    global direction
    direction = 'bas'
 
# end def 
 
 
 
# création de l'interface graphique 
fenetre = Tk()
fenetre.title('Jeu Final')
 
# canevas graphique
canevas = Canvas(fenetre, width=500, height=500, bg='#046380')
canevas.pack(side=TOP, padx=5, pady=5)
 
# init coordonnées du carré
carreX, carreY = (235, 250)
 
# dessin du carré
carre = canevas.create_rectangle(carreX, carreY, carreX+10, carreY+10, outline='white', fill='#C03000')
 
# init boutons
Button(fenetre, text='New Game', command=newgame).pack(side=LEFT, padx=5, pady=5)
 
Button(fenetre, text='Quitter', command=fenetre.destroy).pack(side=RIGHT, padx=5, pady=5)
 
#infos 
Label(fenetre, text="Cliquez sur 'New Game' pour commencer").pack(padx=0, pady=11)
 
 
# on lance la boucle principale
fenetre.mainloop() |