|
|
|
@ -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() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|