Consignes pour les projets :

Numérique et sciences informatiques

start up

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 :

python python
Exemples

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
    """