Projet n°1 : Dessine ta rue avec la POO !
Numérique et sciences informatiques
Projet : Créer et représenter une "rue" en utilisant la POO
Le but de ce projet est de créer et représenter des immeubles à l'aide d'une classe `Immeuble`, en utilisant des méthodes pour dessiner la porte, les fenêtres et le toit.
Cahier des charges
Voici un exemple de rendu que votre programme doit produire lorsque vous l'exécuterez :
Pour cela, vous utiliserez le module turtle, qui permet de suivre les mouvements d’une tortue (symbolisée par une flèche) dans une fenêtre graphique en fonction des instructions que vous lui donnerez.
Contraintes à respecter :
- Les immeubles doivent avoir au minimum un rez-de-chaussée et au maximum 4 étages (soit 5 niveaux au total).
- Chaque immeuble a une couleur unique pour toute la façade.
- Le rez-de-chaussée comporte une porte unique.
- Le reste peut être personnalisé à votre convenance (fenêtres, toit, etc.).
Le code suivant permet d'accélérer le déplacement de la tortue
turtle.delay(0) # trace rapidementainsi qu'un : tuto pour turtle .
Le code du programme :
Entraînement 1 :
Modifiez et complétez le code de la classe Immeuble pour permettre la construction d'un immeuble avec ses différents éléments (porte, fenêtres, toit).
class Immeuble :
'''
Paramètres
classe construisant un immeuble
x, y : coordonnées de la base de l'étage (coin gauche)
largeur : largeur d'un étage
hauteur : hauteur d'un étage
couleur : couleur de l'immeuble
n : nombre d'etages de l'immeuble
'''
def __init__(self, x, y, hauteur, largeur, couleur, n):
self.x = x
self.y = y
self.hauteur = hauteur
self.largeur = largeur
self.couleur = couleur
self.n = n
def tracer_etage(self):
'''Dessine un étage de l'immeuble.'''
turtle.penup()
turtle.goto(self.x, self.y)
turtle.pendown()
turtle.fillcolor(self.couleur)
turtle.begin_fill()
for _ in range(2):
turtle.forward(self.largeur)
turtle.left(90)
turtle.forward(self.hauteur)
turtle.left(90)
turtle.end_fill()
turtle.penup()
def tracer_fenetre(self):
'''Dessine une fenêtre à chaque étage.'''
# À compléter
def tracer_porte(self):
'''Dessine la porte du rez-de-chaussée.'''
# À compléter
def tracer_toit(self):
'''Dessine le toit de l'immeuble.'''
# À compléterExercice 2 : Créer plusieurs immeubles
Utilisez la fonction random pour créer les instances immeuble_1, immeuble_2, immeuble_3, immeuble_4, et immeuble_5 avec des paramètres aléatoires.
Exercice 3 : Améliorer la ville
Ajoutez des éléments supplémentaires pour améliorer la représentation de votre ville : couleurs aléatoires, nombre d'étages aléatoire, routes, lampadaires, etc.