|
|
@ -1,6 +1,13 @@ |
|
|
|
from rue import * |
|
|
|
from rue import dessiner_immeuble |
|
|
|
|
|
|
|
|
|
|
|
def dessiner_rue_decrite(description: str) -> None: |
|
|
|
def dessiner_rue_decrite(description: str) -> None: |
|
|
|
|
|
|
|
"""Dessine une rue en fonction d'une description textuelle. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
:: param description(str) :: description textuelle de la rue, |
|
|
|
|
|
|
|
contenant le nombre d'immeubles et leurs caractéristiques |
|
|
|
|
|
|
|
:: return (None) :: fonction sans retour |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
""" |
|
|
|
lignes = description.strip().split('\n') |
|
|
|
lignes = description.strip().split('\n') |
|
|
|
nombre_immeubles = int(lignes[1].split()[0]) # Récupère le nombre d'immeubles |
|
|
|
nombre_immeubles = int(lignes[1].split()[0]) # Récupère le nombre d'immeubles |
|
|
|
|
|
|
|
|
|
|
@ -10,6 +17,16 @@ def dessiner_rue_decrite(description: str) -> None: |
|
|
|
dessiner_immeuble(immeuble) |
|
|
|
dessiner_immeuble(immeuble) |
|
|
|
|
|
|
|
|
|
|
|
def parser_immeuble(description: str, numero: int) -> dict: |
|
|
|
def parser_immeuble(description: str, numero: int) -> dict: |
|
|
|
|
|
|
|
"""Analyse et convertit une description d'immeuble en un dictionnaire d'attributs. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
:: param description(str) :: description d'un immeuble sous la forme d'une chaîne de caractères, |
|
|
|
|
|
|
|
séparant les attributs par " - " |
|
|
|
|
|
|
|
:: param numero(int) :: numéro de l'immeuble dans la rue, utilisé pour calculer sa position |
|
|
|
|
|
|
|
:: return (dict) :: dictionnaire contenant les attributs de l'immeuble, |
|
|
|
|
|
|
|
notamment couleur de façade, nombre d'étages, position de la porte, |
|
|
|
|
|
|
|
type de toit, et couleur du toit |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
""" |
|
|
|
attributs = description.split(' - ') |
|
|
|
attributs = description.split(' - ') |
|
|
|
|
|
|
|
|
|
|
|
# Récupération de la couleur et du nombre d'étages |
|
|
|
# Récupération de la couleur et du nombre d'étages |
|
|
@ -32,6 +49,14 @@ def parser_immeuble(description: str, numero: int) -> dict: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def coordonnees_porte_avec_position(numero: int, position: str) -> tuple: |
|
|
|
def coordonnees_porte_avec_position(numero: int, position: str) -> tuple: |
|
|
|
|
|
|
|
"""Calcule les coordonnées de la porte d'un immeuble en fonction de sa position. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
:: param numero(int) :: numéro de l'immeuble dans la rue, utilisé pour calculer sa position en X |
|
|
|
|
|
|
|
:: param position(str) :: position de la porte sur la façade de l'immeuble, |
|
|
|
|
|
|
|
qui peut être "au milieu", "à gauche" ou "à droite" |
|
|
|
|
|
|
|
:: return (tuple) :: tuple contenant les coordonnées X et Y de la porte en pixels |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
""" |
|
|
|
x_gauche = -400 + 200 * numero |
|
|
|
x_gauche = -400 + 200 * numero |
|
|
|
y_bas = -200 |
|
|
|
y_bas = -200 |
|
|
|
|
|
|
|
|
|
|
@ -50,3 +75,4 @@ if __name__ == '__main__': |
|
|
|
# Dessiner la rue décrite dans le fichier |
|
|
|
# Dessiner la rue décrite dans le fichier |
|
|
|
dessiner_rue_decrite(description) |
|
|
|
dessiner_rue_decrite(description) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|