Treacky
2 months ago
1 changed files with 52 additions and 51 deletions
@ -1,51 +1,52 @@ |
|||||||
from rue import * |
from rue import * |
||||||
|
|
||||||
def dessiner_rue_decrite(description: str) -> None: |
def dessiner_rue_decrite(description: str) -> None: |
||||||
lignes = description.strip().split('\n') |
lignes = description.strip().split('\n') |
||||||
nombre_immeubles = int(lignes[1].split()[0]) # Récupère le nombre d'immeubles |
nombre_immeubles = int(lignes[1].split()[0]) # Récupère le nombre d'immeubles |
||||||
|
|
||||||
for i in range(2, 2 + nombre_immeubles): |
for i in range(2, 2 + nombre_immeubles): |
||||||
immeuble_description = lignes[i].strip() |
immeuble_description = lignes[i].strip() |
||||||
immeuble = parser_immeuble(immeuble_description, i - 2) |
immeuble = parser_immeuble(immeuble_description, i - 2) |
||||||
dessiner_immeuble(immeuble) |
dessiner_immeuble(immeuble) |
||||||
|
|
||||||
def parser_immeuble(description: str, numero: int) -> dict: |
def parser_immeuble(description: str, numero: int) -> dict: |
||||||
attributs = description.split(' - ') |
attributs = description.split(' - ') |
||||||
|
|
||||||
# Récupération de la couleur et du nombre d'étages |
# Récupération de la couleur et du nombre d'étages |
||||||
facade = attributs[0].split(' ')[1] # couleur de façade |
facade = attributs[0].split(' ')[1] # couleur de façade |
||||||
etages = int(attributs[1].split(' ')[0]) * 80 # Conversion en pixels |
etages = int(attributs[1].split(' ')[0]) * 80 # Conversion en pixels |
||||||
porte_position = attributs[2].split(' ')[-1] # Position de la porte |
porte_position = attributs[2].split(' ')[-1] # Position de la porte |
||||||
toit_type = attributs[3].split(' ')[-1] # Type de toit |
toit_type = attributs[3].split(' ')[1] # Type de toit |
||||||
toit_couleur = 'black' # On suppose que le toit est toujours noir |
toit_couleur = 'black' # On suppose que le toit est toujours noir |
||||||
|
|
||||||
porte_coord = coordonnees_porte_avec_position(numero, porte_position) |
porte_coord = coordonnees_porte_avec_position(numero, porte_position) |
||||||
print(attributs) |
print(attributs) |
||||||
return { |
return { |
||||||
'couleur_facade': facade, |
'couleur_facade': facade, |
||||||
'numero': numero, |
'numero': numero, |
||||||
'etages': etages, |
'etages': etages, |
||||||
'porte': porte_coord, |
'porte': porte_coord, |
||||||
'toit_type': toit_type, |
'toit_type': toit_type, |
||||||
'toit_couleur': toit_couleur |
'toit_couleur': toit_couleur |
||||||
} |
} |
||||||
|
|
||||||
|
|
||||||
def coordonnees_porte_avec_position(numero: int, position: str) -> tuple: |
def coordonnees_porte_avec_position(numero: int, position: str) -> tuple: |
||||||
x_gauche = -400 + 200 * numero |
x_gauche = -400 + 200 * numero |
||||||
y_bas = -200 |
y_bas = -200 |
||||||
|
|
||||||
if position == 'au milieu': |
if position == 'au milieu': |
||||||
return (x_gauche + 55, y_bas) |
return (x_gauche + 55, y_bas) |
||||||
elif position == 'à gauche': |
elif position == 'à gauche': |
||||||
return (x_gauche + 12.5, y_bas) |
return (x_gauche + 12.5, y_bas) |
||||||
elif position == 'à droite': |
elif position == 'à droite': |
||||||
return (x_gauche + 97.5, y_bas) |
return (x_gauche + 97.5, y_bas) |
||||||
|
|
||||||
if __name__ == '__main__': |
if __name__ == '__main__': |
||||||
# Lire la description depuis le fichier |
# Lire la description depuis le fichier |
||||||
with open('description_rue.txt', 'r') as fichier: |
with open('description_rue.txt', 'r') as fichier: |
||||||
description = fichier.read() |
description = fichier.read() |
||||||
|
|
||||||
# Dessiner la rue décrite dans le fichier |
# Dessiner la rue décrite dans le fichier |
||||||
dessiner_rue_decrite(description) |
dessiner_rue_decrite(description) |
||||||
|
|
||||||
|
Loading…
Reference in new issue