Bonjour,
je réalise un tutoriel d'apprentissage du langage Python et je souhaite une critique (constructive ) sur ma réponse.
Note: le code fonctionne comme je le souhaite. C'est la structure du code que je souhaite faire vérifier.
Merci à vous

consigne: Créez un programme permettant d'avoir une balle noire qui rebondit sur les bords de la fenêtre. La position de départ, la vitesse de départ ainsi que la direction de départ devront être aléatoires. La balle ne devra pas rester immobile. Vous devrez créer une classe Balle. Cette classe possédera 2 méthodes (en plus du constructeur) : "afficheBalle" (qui permettra de dessiner la balle l'écran à l'aide d'une fonction "ellipse") et "depBalle" qui gérera les déplacements de la balle.

Proposition:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
class Balle(object):
    def __init__(self):
      self.xi = random(0,400)
      self.yi = random(0,400)
 
# pour que vitesse non nul
      self.vi = random(1,10)
 
# pour que direction non nul
      self.dix = random(-1,1)
      while self.dix == 0:
          self.dix = random(-1,1)
      self.diy = random(-1,1)
      while self.diy == 0:
          self.diy = random(-1,1)
 
    def afficheBalle(self):
        # qui permettra de dessiner la balle l'écran à l'aide d'une fonction "ellipse")
        ellipse(self.xi,self.yi,20,20)
 
    def depBalle(self):
# qui gérera les déplacements de la balle.
# x de ellipse 
        if self.xi >= 390:
            self.dix = random(-10,-1)
        elif self.xi <= 10:
            self.dix= random(1,10)
# y de ellipse
        if self.yi >= 390:
            self.diy = random(-10,-1)
        elif self.yi <= 10:
            self.diy= random(1,10)
# coordonnées de ellipse = position à n-1 + vitesse * direction
        self.xi = self.xi+self.vi*self.dix
        self.yi = self.yi+self.vi*self.diy
 
b = Balle()    
def setup():
    size(400,400)
    noStroke()
    fill(0)
    frameRate(30)
 
def draw():
    background(255)
    b.afficheBalle()
    b.depBalle()