From a185eeddaf9a30ba22e1022a2e2f8e95ab7d00cd Mon Sep 17 00:00:00 2001 From: Treacky Date: Fri, 13 Sep 2024 12:59:02 +0200 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 | 55 +++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 43 insertions(+), 12 deletions(-) diff --git a/rue.py b/rue.py index 75a805f..5acd7dd 100644 --- a/rue.py +++ b/rue.py @@ -9,48 +9,78 @@ from dessiner import triangle_equilateral from dessiner import rectangle +from random import choice # Constantes -LARGEUR_IMMEUBLE = 50 +LARGEUR_IMMEUBLE = 140 # Fonction privées -def immeuble_aleatoire(numero:int) -> dict: +def immeuble_aleatoire(numero: int) -> dict: informations = {} informations['couleur_facade'] = couleur_aleatoire() informations['numero'] = numero + informations['etages'] = etage_aleatoire() # Ajout de la hauteur des étages return informations def couleur_aleatoire() -> str: - return "red" - + return choice(['red','light green','grey','sky blue','olive','seagreen','mediumaquamarine','peachpuff']) + +def etage_aleatoire() -> str: + return choice([80,160,240,320]) + def coordonnees_facade(immeuble:dict) -> tuple: - x_gauche = -200+ 100 * immeuble['numero'] - y_bas = 0 + x_gauche = -400+ 200 * immeuble['numero'] + y_bas = -200 + return (x_gauche, y_bas) + +def coordonnees_porte(immeuble:dict) -> tuple: + x_gauche = -400+ 200 * immeuble['numero'] + choice([12.5,55,97.5]) + y_bas = -200 return (x_gauche, y_bas) -def dessiner_facade(immeuble:dict) -> None: +def dessiner_facade(immeuble: dict) -> None: # Traduction des données de rue vers dessiner crayon = {} - crayon['écriture'] = "blue" + crayon['écriture'] = "black" crayon['fond'] = immeuble['couleur_facade'] crayon['épaisseur'] = 1 x, y = coordonnees_facade(immeuble) # désempaquatage du couple cote = LARGEUR_IMMEUBLE + etages = immeuble['etages'] # Utiliser la hauteur des étages depuis le dictionnaire # Demande d'affichage - rectangle(cote,100, crayon, (x,y)) + rectangle(cote, etages, crayon, (x, y)) def dessiner_porte(immeuble:dict) -> None: # Traduction des données de rue vers dessiner crayon = {} - pass - -def dessiner_immeuble(immeuble:dict) -> None: + crayon['écriture'] = "black" + crayon['fond'] = couleur_aleatoire() + crayon['épaisseur'] = 1 + x, y = coordonnees_porte(immeuble) + # Demande d'affichage + rectangle(30,50, crayon, (x,y)) + +def dessiner_toit(immeuble: dict) -> None: + # Traduction des données de rue vers dessiner + crayon = {} + crayon['écriture'] = "black" + crayon['fond'] = 'black' # Vous pouvez choisir une autre couleur si vous le souhaitez + crayon['épaisseur'] = 1 + x, y = coordonnees_facade(immeuble) + cote = LARGEUR_IMMEUBLE + hauteur = immeuble['etages'] # Utiliser la hauteur des étages depuis le dictionnaire + y_toit = y + hauteur # Positionner le toit au-dessus de la façade + # Demande d'affichage + triangle_equilateral(cote, crayon, (x, y_toit)) + +def dessiner_immeuble(immeuble: dict) -> None: dessiner_facade(immeuble) dessiner_porte(immeuble) + dessiner_toit(immeuble) # à compléter avec d'autres fonctions pour le reste : toit, fenêtres... @@ -70,3 +100,4 @@ def dessiner_rue_decrite(rue:'?') -> None: if __name__ == '__main__': dessiner_rue_aleatoire() +