# Créé par René, le 05/07/2012 from __future__ import division from lycee import * from Tkinter import * from random import * import time import random #===================================================================== #Classes : class Sprite: """Classe définissant un robot, caractérisé par : - sa position - sa couleur - sa vitesse - sa taille""" def __init__(self, positionX, positionY, couleur): # Notre méthode constructeur self.positionX = positionX self.positionY = positionY self.couleur = couleur self.taille = 1 #fixe cnv1.create_rectangle(floor(self.positionX)*patch, floor(self.positionY)*patch,floor(self.positionX+1)*patch,floor(self.positionY+1)*patch, fill=self.couleur) def afficher(self): cnv1.coords(robot, floor(self.positionX)*patch, floor(self.positionY)*patch,floor(self.positionX+1)*patch,floor(self.positionY+1)*patch) #===================================================================== #FONCTIONS : def creer_boutons(fenetre): bt_depart=Button(fenetre, text ='Départ', command=depart) bt_depart.pack(side=TOP) bt_stop=Button(fenetre, text ='Stop', command=fenetre.quit) bt_stop.pack(side=TOP) def depart(): #Robot sans POO : xr, yr = 0,0 rob = cnv1.create_rectangle(xr*patch, yr*patch, (xr+1)*patch, (yr+1)*patch, fill='yellow') for i in range(10): #print xr+i cnv1.coords(rob, (xr+i)*patch, yr*patch, (xr+i+1)*patch, (yr+1)*patch) time.sleep(0.1) fnt1.update() #Robot avec POO : robot = Sprite(0, 1, 'red') robot.afficher() for i in range(10): robot.positionX = i #print robot.positionX robot.afficher() time.sleep(0.1) fnt1.update() #===================================================================== # # PROGRAMME PRINCIPAL # ----------------------------------------------------------- # Constantes et variables : patch = 10 #taille des sprites ratio_ecran = 12 max_pas = 10 cible_atteinte = FALSE #--------------------------------------------------------------------------------- #Fenêtre, canevas et boutons : fnt1 = Tk() cnv1 = Canvas(fnt1,bg='grey',height=250,width=600) cnv1.pack(side=LEFT) creer_boutons(fnt1)