Browse Source

Transférer les fichiers vers ''

master
Jajak 1 year ago
parent
commit
37440b57a5
  1. 138
      Squelette de rue.py

138
Squelette de rue.py

@ -0,0 +1,138 @@
"""Ce fichier permet de dessiner une rue à l'aide des fonctions suivantes :
+ dessiner_rue_aleatoire()
+ dessiner_rue_decrite(rue:dict)
"""
# Importation
import squelette_dessiner as ds
import turtle as trt
import random as rd
# Constantes
LARGEUR_IMMEUBLE = 140
# Fonction privées
def immeuble_aleatoire(numero:int) -> dict:
informations = {}
informations['couleur_facade'] = couleur_aleatoire()
informations['numero'] = numero
informations['etages'] = rd.randint(2,6)
informations['toit'] = rd.randint(1,2)
return informations
def couleur_aleatoire() -> str:
liste = ["red","blue","yellow","black","orange","purple","brown","pink","green", "olive", "silver", "teal", "darkcyan", "aqua"]
couleur = rd.randint(0,len(liste)-1)
return liste[couleur]
def coordonnees_facade(immeuble:dict) -> tuple:
x_gauche = -200 + 200 * immeuble['numero']
y_bas = -100
return (x_gauche, y_bas)
def coordonees_fenetre(immeuble:dict) -> tuple:
x_gauche, y_bas = coordonnees_facade(immeuble)
x_gauche = x_gauche - 100
y_bas = y_bas + 20
return (x_gauche, y_bas)
def coordonees_fenetre_etage(immeuble:dict) -> tuple:
x_gauche, y_bas = coordonees_fenetre(immeuble)
x_gauche = x_gauche + 45
return (x_gauche, y_bas)
def dessiner_facade(immeuble:dict) -> None:
# Traduction des données de rue vers dessiner
crayon = {}
crayon['écriture'] = "grey"
crayon['fond'] = immeuble['couleur_facade']
crayon['épaisseur'] = 3
x, y = coordonnees_facade(immeuble) # désempaquatage du couple
cote = LARGEUR_IMMEUBLE
# Demande d'affichage
for i in range(immeuble['etages']):
ds.rectangle(80, cote, crayon, (x,y + i * 80))
def dessiner_toit(immeuble:dict) -> None:
# Traduction des données de rue vers dessiner
crayon = {}
crayon['écriture'] = "grey"
crayon['fond'] = immeuble['couleur_facade']
crayon['épaisseur'] = 3
x, y = coordonnees_facade(immeuble) # désempaquatage du couple
y = y + 0
cote = LARGEUR_IMMEUBLE
nb = immeuble['etages']
if immeuble['toit'] == 1:
ds.rectangle(80, cote, crayon, (x,y + nb * 80))
elif immeuble['toit'] == 2:
ds.triangle_isocele(cote, crayon, (x,y + nb * 80))
def dessiner_porte(immeuble:dict) -> None:
# Traduction des données de rue vers dessiner
crayon = {}
pass
def dessiner_fenetre(immeuble:dict) -> None:
crayon = {}
crayon['écriture'] = 'white'
crayon['fond'] = 'blue'
crayon['épaisseur'] = 2
x, y = coordonees_fenetre(immeuble)
cote = 30
ds.rectangle(cote, cote, crayon, (x,y))
def dessiner_fenetre_etage(immeuble:dict) -> None:
crayon = {}
crayon['écriture'] = 'white'
crayon['fond'] = 'blue'
crayon['épaisseur'] = 2
x, y = coordonees_fenetre_etage(immeuble)
cote = 30
for i in range(2):
ds.rectangle(cote, cote, crayon, (x + i * 45,y))
v = (x + i * 45,y)
def dessiner_fenetre_immeuble(immeuble:dict) -> None:
crayon = {}
crayon['écriture'] = 'white'
crayon['fond'] = 'blue'
crayon['épaisseur'] = 2
x, y = coordonees_fenetre_etage(immeuble)
cote = 30
for i in range(immeuble['etages']):
x = -200
y = y + i * 80
for i in range(3):
ds.rectangle(cote, cote, crayon, (x + i * 45,y))
def dessiner_immeuble(immeuble:dict) -> None:
dessiner_facade(immeuble)
dessiner_porte(immeuble)
dessiner_toit(immeuble)
#dessiner_fenetre(immeuble)
#dessiner_fenetre_etage(immeuble)
#dessiner_fenetre_immeuble(immeuble)
# à compléter avec d'autres fonctions pour le reste : toit, fenêtres...
def dessiner_rue_aleatoire() -> None:
for n in range(4):
informations_immeuble = immeuble_aleatoire(n)
dessiner_immeuble(informations_immeuble)
def dessiner_rue_decrite(rue:'?') -> None:
pass
# Programme principal
if __name__ == '__main__':
dessiner_rue_aleatoire()
Loading…
Cancel
Save