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