Dans le cadre d'un projet d'urbanisme, vous avez obtenu la tâche de créer un programme ou une fonction qui affichera les toits de la ville, compte tenu de la contribution des architectes. Le projet est seulement en phase de démarrage, donc un croquis très grossier est suffisant. L'approche la plus simple est bien sûr de simplement dessiner la ligne d'horizon en ASCII-art.
Tous les bâtiments seront au bord de la rivière, ils sont donc tous alignés. Les architectes donneront la hauteur de chaque bâtiment en entrée, et votre code devrait afficher l'horizon.
L'entrée des architectes sera soit un entier soit un demi-entier. Si le nombre est un entier, le bâtiment aura un toit plat, tandis qu'un demi-entier donnera un toit en pente. Un zéro sera juste un terrain plat. Les murs d'un bâtiment sont séparés par 3 caractères, tandis qu'un zéro sera large d'un seul caractère. Les bâtiments adjacents partagent des murs.
Pour plus de détails et des clarifications concernant la sortie, veuillez consulter les exemples ci-dessous:
N = 3
___
| |
| |
|___|
N = 3.5
_
/ \
| |
| |
|___|
N = 6
___
| |
| |
| |
| |
| |
|___|
n = 0
_
Exemple d'entrée: 3 3.5 0 2
_
___ / \
| | | ___
| | | | |
|___|___|_|___|
Exemple d'entrée: 0 0 2.5 3 0 4 1
___
_ ___ | |
/ \| | | |
| | | | |___
__|___|___|_|___|___|
Louisville ,0 2 1 3.5 0 4 2 4 2 4 6 1 6 0 5 1
___ ___
| | | | ___
_ ___ ___ ___| | | | | |
/ \ | | | | | | | | | | |
___ | | | |___| |___| | | | | | |
| |___| | | | | | | | |___| | | |___
_|___|___|___|_|___|___|___|___|___|___|___|___|_|___|___|
Les caractères ASCII utilisés sont: nouvelle ligne, espace et /\_|
(points de code 10, 32, 47, 92, 95, 124).
Règles:
- Il est facultatif de créer un programme qui ne prend que des entiers en entrée, en multipliant tous les nombres par deux. Ainsi, au lieu de prendre
3 3.5 2
, votre programme peut prendre6 7 4
. Si le deuxième format d'entrée est choisi, une entrée de 6 devrait se traduire par un bâtiment de 3 étages, 7 devrait être un bâtiment de 3 étages avec des toits en pente, etc. - La sortie doit être exactement comme décrit ci-dessus, mais les espaces de fin et les retours à la ligne sont OK.
- Le format exact de l'entrée est facultatif. Tout ce qui est le mieux dans votre langue.
- Le résultat doit être affiché à l'écran, afin que les architectes puissent le consulter.
- Vous pouvez supposer qu'il y aura au moins un entier donné et que seule une entrée valide sera donnée.
C'est codegolf, donc le code le plus court en octets gagne.