diff --git a/rue.py b/rue.py index d82fc89..444b7eb 100644 --- a/rue.py +++ b/rue.py @@ -1,15 +1,7 @@ -"""Ce fichier permet de dessiner une rue à l'aide des fonctions suivantes : - -+ dessiner_rue_aleatoire() -+ dessiner_rue_decrite(rue:dict) -""" - - -# Importation - -import dessiner as ds +import squelette_dessiner as ds import turtle as trt import random as rd + trt.bgcolor("lightskyblue") # Constantes @@ -25,77 +17,133 @@ def immeuble_aleatoire(numero:int) -> dict: informations['couleur_facade'] = couleur_aleatoire() informations['numero'] = numero informations['etages'] = rd.randint(2,5) + 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 + pass +def dessiner_porte(immeuble:dict) -> None: + # Traduction des données de rue vers dessiner + crayon = {} + pass + +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 - # Demande d'affichage - for i in range(immeuble['etages']): - ds.rectangle(80, cote, crayon, (x,y + i * 80)) - -def dessiner_porte(immeuble:dict) -> None: - # Traduction des données de rue vers dessiner + 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_fenetre(immeuble:dict) -> None: crayon = {} + crayon['écriture'] = 'white' + crayon['fond'] = 'blue' crayon['écriture'] = 'black' crayon['fond'] = 'brown' crayon['épaisseur'] = 2 + x, y = coordonees_fenetre(immeuble) + cote = 30 + ds.rectangle(cote, cote, crayon, (x,y)) x, y = coordonnees_facade(immeuble) position = rd.randint(0,2) x = x -95 + 42.5*position y = y ds.rectangle(55, 30, crayon, (x,y)) +def dessiner_fenetre_etage(immeuble:dict) -> None: + pass + + def dessiner_fenetre(immeuble:dict, etage:int, position:int) -> None: crayon = {} crayon['écriture'] = 'white' crayon['fond'] = 'blue' crayon['épaisseur'] = 2 + x, y = coordonees_fenetre_etage(immeuble) x, y = coordonnees_facade(immeuble) x = x -95 + 42.5*position y = y + 25 + etage * 80 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)) ds.rectangle(cote, cote, crayon, (x,y)) def dessiner_fenetres(immeuble:dict) -> None: for etage in range(immeuble['etages']): for position in range(3): dessiner_fenetre(immeuble, etage, position) + +def dessiner_rue_aleatoire() -> None: + for n in range(4): + informations_immeuble = immeuble_aleatoire(n) + dessiner_immeuble(informations_immeuble) def dessiner_immeuble(immeuble:dict) -> None: dessiner_facade(immeuble) dessiner_fenetres(immeuble) dessiner_porte(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 - +def dessiner_rue_decrite(rue:list) -> dict: + for i in range(len(rue)): # pour chaque i possible dans le tableau rue + print(rue[i]) + + for immeuble in rue: # pour chaque contenu de case + print(immeuble) + if __name__ == '__main__': dessiner_rue_aleatoire() - + +"""testt = [ + {'couleur_facade':'red', 'numero':3, 'etages':4,'toit':2}, + {'couleur_facade':'purple', 'numero':2, 'etages':3,'toit':1}, + {'couleur_facade':'pink', 'numero':4, 'etages':5,'toit':2} + ] +dessiner_rue_decrite(testt) +""" + \ No newline at end of file