From f4e69996c650e9b990f69283bea2386b926e7f76 Mon Sep 17 00:00:00 2001 From: Treacky Date: Mon, 4 Nov 2024 00:28:38 +0100 Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'interpreteur.py'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- interpreteur.py | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/interpreteur.py b/interpreteur.py index d7152b9..b06a4ab 100644 --- a/interpreteur.py +++ b/interpreteur.py @@ -1,6 +1,13 @@ -from rue import * +from rue import dessiner_immeuble 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') 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) 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(' - ') # 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: + """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 y_bas = -200 @@ -50,3 +75,4 @@ if __name__ == '__main__': # Dessiner la rue décrite dans le fichier dessiner_rue_decrite(description) +