|
|
|
# Importation
|
|
|
|
from random import randint
|
|
|
|
from formes import triangle_equilateral
|
|
|
|
from formes import rectangle
|
|
|
|
from formes import porte
|
|
|
|
from formes import fenetre
|
|
|
|
# Fonction gestion des données
|
|
|
|
|
|
|
|
def determiner_immeuble(numero:int) -> dict:
|
|
|
|
caracteristiques = {}
|
|
|
|
caracteristiques['couleur_facade'] = 'blue'
|
|
|
|
caracteristiques['numero'] = numero
|
|
|
|
caracteristiques['bas_imeuble'] = -300 + numero * 240
|
|
|
|
caracteristiques['millieu_imeuble'] = -200 + numero * 340
|
|
|
|
caracteristiques['etage'] = randint(1, 5) #1 veut dire rechausser plus 1 etage
|
|
|
|
|
|
|
|
caracteristiques['couleur_porte'] = 'black'
|
|
|
|
caracteristiques['position_porte'] = caracteristiques['bas_imeuble'] + 20
|
|
|
|
|
|
|
|
caracteristiques['couleur_fenetre'] ='green'
|
|
|
|
caracteristiques['position_fenetre'] = caracteristiques['millieu_imeuble'] + 20
|
|
|
|
caracteristiques['position_fenetre_gauche'] = caracteristiques['bas_imeuble'] + 40
|
|
|
|
caracteristiques['position_fenetre_droite'] = caracteristiques['bas_imeuble'] + 60
|
|
|
|
caracteristiques['position_fenetre_millieu'] = caracteristiques['bas_imeuble'] + 80
|
|
|
|
|
|
|
|
return caracteristiques
|
|
|
|
|
|
|
|
# Fonctions d'interface graphique
|
|
|
|
|
|
|
|
def dessiner_facade(informations:dict):
|
|
|
|
facade = {} # pour faire la "traduction" entre les clés de ce module et les clés du module formes
|
|
|
|
facade['écriture'] = 'blue'
|
|
|
|
facade['fond'] = informations['couleur_facade']
|
|
|
|
facade['épaisseur'] = 0 * informations['numero']
|
|
|
|
x0 = informations['bas_imeuble']
|
|
|
|
nombre_etage = informations['etage']
|
|
|
|
rectangle(140, nombre_etage*80+80, facade, (x0,0))
|
|
|
|
|
|
|
|
def dessiner_porte(informations:dict):
|
|
|
|
porte = {} # pour faire la "traduction" entre les clés de ce module et les clés du module formes
|
|
|
|
porte['écriture'] = 'red'
|
|
|
|
porte['fond'] = informations ['couleur_porte']
|
|
|
|
porte['épaisseur'] = 1
|
|
|
|
x0 = informations['position_porte']
|
|
|
|
rectangle(30,40, porte, (x0,0))
|
|
|
|
|
|
|
|
def dessiner_fenetre(informations:dict):
|
|
|
|
fenetre = {} # pour faire la "traduction" entre les clés de ce module et les clés du module formes
|
|
|
|
fenetre['écriture'] = 'black'
|
|
|
|
fenetre['fond'] = informations ['couleur_fenetre']
|
|
|
|
fenetre['épaisseur'] = 1
|
|
|
|
x0 = informations['position_fenetre']
|
|
|
|
x1 = informations['position_fenetre_gauche']
|
|
|
|
x2 = informations['position_fenetre_millieu']
|
|
|
|
x3 = informations['position_fenetre_droite']
|
|
|
|
|
|
|
|
rectangle(30,40, fenetre, (x0, x1, x2, x3, 0))
|
|
|
|
|
|
|
|
def dessiner_immeuble(informations:dict):
|
|
|
|
dessiner_facade(informations)
|
|
|
|
dessiner_porte(informations)
|
|
|
|
# à compléter avec d'autres fonctions pour le reste : toit, fenêtres...
|
|
|
|
|
|
|
|
# Programme principal
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
|
|
|
for x in range(4):
|
|
|
|
infos_immeuble = determiner_immeuble(x)
|
|
|
|
dessiner_immeuble(infos_immeuble)
|