From 2f5eea5a4b9fac8a4cb3fdd7a4d0d1a5eb94b8a8 Mon Sep 17 00:00:00 2001 From: Treacky Date: Mon, 4 Nov 2024 00:28:58 +0100 Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'rue.py'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rue.py | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 76 insertions(+), 2 deletions(-) diff --git a/rue.py b/rue.py index a7e21ff..b7703bc 100644 --- a/rue.py +++ b/rue.py @@ -21,6 +21,14 @@ LARGEUR_IMMEUBLE = 140 # Fonction privées def immeuble_aleatoire(numero: int) -> dict: + """Génère un immeuble avec des caractéristiques aléatoires. + + :: param numero(int) :: numéro de l'immeuble pour positionner sa façade + :: return (dict) :: dictionnaire contenant les attributs de l'immeuble, + comme couleur de façade, numéro, nombre d'étages, + position de la porte, type et couleur du toit + + """ informations = {} informations['couleur_facade'] = couleur_aleatoire() informations['numero'] = numero @@ -31,31 +39,70 @@ def immeuble_aleatoire(numero: int) -> dict: return informations def couleur_aleatoire() -> str: + """Sélectionne une couleur aléatoire pour la façade. + + :: return (str) :: couleur aléatoire choisie pour la façade + + """ return choice(['red','light green','grey','sky blue','olive','seagreen','mediumaquamarine','peachpuff']) def toit_aleatoire() -> str: + """Sélectionne un type de toit aléatoire pour l'immeuble. + + :: return (str) :: type de toit, 'pointu' ou 'arrondi' + + """ return choice(['pointu','arrondi']) def etage_aleatoire() -> str: + """Choisit un nombre d'étages aléatoire pour l'immeuble. + + :: return (int) :: hauteur de l'immeuble en pixels, en multiple de 80 + + """ return choice([80,160,240,320]) def coordonnees_facade(immeuble:dict) -> tuple: + """Calcule les coordonnées de la base de la façade de l'immeuble. + + :: param immeuble(dict) :: dictionnaire avec les informations de l'immeuble + :: return (tuple) :: coordonnées de la façade de l'immeuble (x, y) + + """ x_gauche = -400+ 200 * immeuble['numero'] y_bas = -200 return (x_gauche, y_bas) def coordonnees_porte(immeuble:dict) -> tuple: + """Calcule les coordonnées de la porte de l'immeuble. + + :: param immeuble(dict) :: dictionnaire avec les informations de l'immeuble + :: return (tuple) :: coordonnées de la porte (x, y) en fonction de la position choisie + + """ x_gauche = -400+ 200 * immeuble['numero'] + choice([12.5,55,97.5]) y_bas = -200 return (x_gauche, y_bas) def coordonnees_fenetres(immeuble:dict) -> tuple: + """Calcule les coordonnées de la base des fenêtres de l'immeuble. + + :: param immeuble(dict) :: dictionnaire avec les informations de l'immeuble + :: return (tuple) :: coordonnées de la base des fenêtres (x, y) + + """ x_gauche = -400+ 200 * immeuble['numero'] y_bas = -200 return (x_gauche, y_bas) def dessiner_facade(immeuble: dict) -> None: + """Dessine la façade de l'immeuble avec la couleur et les dimensions fournies. + + :: param immeuble(dict) :: dictionnaire avec les informations de l'immeuble + :: return (None) :: fonction sans retour + + """ # Traduction des données de rue vers dessiner crayon = {} crayon['écriture'] = "black" @@ -68,6 +115,12 @@ def dessiner_facade(immeuble: dict) -> None: rectangle(cote, etages, crayon, (x, y)) def dessiner_porte(immeuble:dict) -> None: + """Dessine la porte de l'immeuble avec une couleur aléatoire. + + :: param immeuble(dict) :: dictionnaire avec les informations de l'immeuble + :: return (None) :: fonction sans retour + + """ # Traduction des données de rue vers dessiner crayon = {} crayon['écriture'] = "black" @@ -78,6 +131,12 @@ def dessiner_porte(immeuble:dict) -> None: rectangle(30,50, crayon, (x,y)) def dessiner_toit(immeuble: dict) -> None: + """Dessine le toit de l'immeuble selon son type ('pointu' ou 'arrondi'). + + :: param immeuble(dict) :: dictionnaire avec les informations de l'immeuble + :: return (None) :: fonction sans retour + + """ crayon = { 'écriture': "black", 'fond': immeuble['toit_couleur'], @@ -96,6 +155,12 @@ def dessiner_toit(immeuble: dict) -> None: def dessiner_fenetres(immeuble: dict) -> None: + """Dessine les fenêtres de l'immeuble sur chaque étage. + + :: param immeuble(dict) :: dictionnaire avec les informations de l'immeuble + :: return (None) :: fonction sans retour + + """ # Traduction des données de rue vers dessiner crayon = {} crayon['écriture'] = "black" @@ -117,6 +182,12 @@ def dessiner_fenetres(immeuble: dict) -> None: def dessiner_immeuble(immeuble: dict) -> None: + """Dessine l'ensemble de l'immeuble (façade, fenêtres, porte, toit). + + :: param immeuble(dict) :: dictionnaire avec les informations de l'immeuble + :: return (None) :: fonction sans retour + + """ dessiner_facade(immeuble) dessiner_fenetres(immeuble) dessiner_porte(immeuble) @@ -127,12 +198,14 @@ def dessiner_immeuble(immeuble: dict) -> None: # Fonction publiques def dessiner_rue_aleatoire() -> None: + """Dessine une rue de quatre immeubles, chacun généré avec des caractéristiques aléatoires. + + :: return (None) :: fonction sans retour + """ for n in range(4): informations_immeuble = immeuble_aleatoire(n) dessiner_immeuble(informations_immeuble) -def dessiner_rue_decrite(rue:'?') -> None: - pass # Programme principal @@ -144,3 +217,4 @@ if __name__ == '__main__': +