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.
66 lines
2.2 KiB
66 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)
|
|
|