You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
2.2 KiB

# Importation
from formes import triangle_equilateral
from formes import triangle_isocele
from formes import rectangle
import random
# Fonction gestion des données
def determiner_immeuble(numero:int) -> dict:
caracteristiques = {}
caracteristiques['couleur_facade'] = 'red'
caracteristiques['numero'] = numero
caracteristiques['coordonnees'] = -350 + numero * 170
caracteristiques['etage'] = random.randint(1,6)
caracteristiques['porte'] = random.randint(1,3)
caracteristiques['fenetre'] = 1
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'] = 5 * informations['numero']
x0 = informations['coordonnees']
hauteur = informations['etage'] * 80
rectangle(140, hauteur, facade, (x0, -200))
triangle_isocele(50, 140, facade,(x0,hauteur -200))
def dessiner_porte(informations:dict):
porte = {}
porte['écriture'] = 'brown'
porte['fond'] = informations['couleur_facade']
porte['épaisseur'] = 1
x0 = informations['coordonnees']
position = informations['porte']
rectangle(30, 50, porte, (x0 + (position * 40) -25, -200))
def dessiner_fenetres(informations:dict):
fenetre = {}
fenetre['écriture'] = 'blue'
fenetre['fond'] = 'blue'
fenetre['épaisseur'] = 1
x0 = informations['coordonnees']
position = informations['fenetre']
for etage in range(0,informations['etage']):
rectangle(30, 30, fenetre, (x0 + (position * 40) -25, -180 + etage*80))
rectangle(30, 30, fenetre, (x0 + (position * 80) -25, -180 + etage*80))
rectangle(30, 30, fenetre, (x0 + (position * 120) -25, -180 + etage*80))
def dessiner_immeuble(informations:dict):
dessiner_facade(informations)
dessiner_fenetres(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)