Consignes pour les projets :
Numérique et sciences informatiques
Projet 3 : Dessine moi ta rue !
Description du mini projet
On souhaite écrire un programme qui permet de générer « aléatoirement » le dessin d’une rue d'immeuble.
Cahier des charges
Voici ci-dessous un exemple de ce que devrait donner votre programme lorsque vous le lancerez :
Pour cela, vous utiliserez le module turtle dont le principe est de suivre dans une fenêtre l’évolution d’une tortue (symbolisée par une flèche) qui suivra vos instructions à la lettre.
Les contraintes urbanistiques sont les suivantes :
- les immeubles ont au minimum un rez-de-chaussée et au maximum 4 étages (5 niveaux) ;
- les immeubles ont une couleur unique pour toute la façade ;
- les rez-de-chaussée n'ont qu'une seule porte ;
- Tout le reste est libre et peut donc être « personnalisé ».
Pour la couleur, vous avez à votre disposition le code suivant :
def couleur_aleatoire():
turtle.colormode(255)
r = randint(0,255)
g = randint(0,255)
b = randint(0,255)
return (r,g,b)
Le code suivant permet d'accélérer le déplacement de la tortue
turtle.speed(100)
ainsi qu'un : tuto pour turtle .
Le code du programme :
Entraînement 1 :
Implémenter la fonction sol(y)
qui trace un trait pour définir le niveau de la rue.
def sol(y):
'''
Paramètres
y : ordonnée du sol du la rue
'''
Entraînement 2 :
Implémenter la fonction mur(x,y,w,h)
qui permet de tracer les murs d'une maison (un rectangle)
def mur(x,y,w,h):
'''
Paramètres
x, y : coordonnées du centre de la base de rectangle
w : largeur du rectangle
h : hauteur du rectangle
'''
Entraînement 3 :
Implémenter la fonction fenetre(x,y,w,h)
qui permet de tracer une fenêtre
def fenetre(x,y,w,h):
'''
Paramètres
x, y : coordonnées du centre de la base de rectangle
w : largeur de la fenêtre
h : hauteur de la fenêtre
'''
Entraînement 4 :
Implémenter la fonction toit(x,y,w,h)
qui permet de tracer un toit (envisager plusieurs modèles)..
Entraînement 5 :
Implémenter la fonction porte(x,y,w,h)
qui permet de tracer une porte (envisager plusieurs modèles).
Entraînement 6 :
Implémenter la fonction immeuble(x,y,w,h)
qui permet de tracer un immeuble avec un nombre aléatoire d'étage et utilisera les fonctions toit(x,y,w,h)
, porte(x,y,w,h)
, fenetre(x,y,w,h)
et mur(x,y,w,h)
au minimum .
Entraînement 7 :
Implémenter la fonction ville()
. La fonction fera appel à immeuble(x,y,w,h)
def ville():
"""
C'est une fonction qui permet de créer une ville avec des bâtiments de tailles et couleurs différentes. Elle est lancée automatiquement
"""