Voici la version "programmation orientée objet" du programme qui était demandé dans le "À faire vous-même 5.4"

À faire vous-même 6.1

Saisissez, testez et analysez ce code (si nécessaire, retravaillez les activités consacrées à la programmation orientée objet en python : ici).


#!/usr/bin/env python
# -*- coding: utf-8 -*-
from Tkinter import *
import time
import random
fen = Tk()
canvas=Canvas(fen,width=500,height=500,background='white')
canvas.pack()
class Balle:
    def __init__(self,posX_ini,posY_ini,vitX_ini,vitY_ini,ray):
        self.objet=canvas.create_oval(posX_ini-ray,posY_ini-ray,posX_ini+ray,posY_ini+ray,fill="red")
        self.posX=posX_ini
        self.posY=posY_ini
        self.vitX=vitX_ini
        self.vitY=vitY_ini
    def deplacement(self):
        if (self.posX<5 or self.posX>495):
            self.vitX=-self.vitX
        if (self.posY<5 or self.posY>495):
            self.vitY=-self.vitY
        canvas.move(self.objet,self.vitX,self.vitY)
        self.posX=self.posX+self.vitX
        self.posY=self.posY+self.vitY

balle = Balle(250,250,random.randint(-3,3),random.randint(-3,3),5)
while True:
    balle.deplacement()
    fen.update_idletasks()
    fen.update()
    time.sleep(0.01)
fen.mainloop()
			

Vous devriez obtenir ceci :

À faire vous-même 6.2

En repartant de ce qui a été fait dans le "À faire vous-même 6.2", créez un programme permettant d'animer 50 balles (la position, la direction et la vitesse de départ devront être aléatoires).