Como parte de un proyecto de planificación de la ciudad, se le asignó la tarea de crear un programa o función que muestre el horizonte de la ciudad, dado algunos aportes de los arquitectos. El proyecto solo está en la fase de inicio, por lo que un boceto muy aproximado es suficiente. El enfoque más fácil es, por supuesto, simplemente dibujar el horizonte en el arte ASCII.
Todos los edificios estarán junto al río, por lo tanto, todos están alineados. Los arquitectos darán la altura de cada edificio como entrada, y su código debe mostrar el horizonte.
La aportación de los arquitectos será un número entero o medio entero. Si el número es un entero, el edificio tendrá un techo plano, mientras que un medio entero dará como resultado un techo inclinado. Un cero solo será terreno plano. Las paredes de un edificio están separadas por 3 caracteres, mientras que un cero será de un solo carácter de ancho. Los edificios adyacentes comparten paredes.
Para obtener detalles y aclaraciones sobre la salida, consulte los ejemplos a continuación:
N = 3
___
| |
| |
|___|
N = 3.5
_
/ \
| |
| |
|___|
N = 6
___
| |
| |
| |
| |
| |
|___|
n = 0
_
Entrada de ejemplo: 3 3.5 0 2
_
___ / \
| | | ___
| | | | |
|___|___|_|___|
Entrada de ejemplo: 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
___ ___
| | | | ___
_ ___ ___ ___| | | | | |
/ \ | | | | | | | | | | |
___ | | | |___| |___| | | | | | |
| |___| | | | | | | | |___| | | |___
_|___|___|___|_|___|___|___|___|___|___|___|___|_|___|___|
Los caracteres ASCII utilizados son: nueva línea, espacio y /\_|
(puntos de código 10, 32, 47, 92, 95, 124).
Reglas:
- Es opcional hacer un programa que solo tome enteros como entrada, multiplicando todos los números por dos. Entonces, en lugar de tomar
3 3.5 2
, su programa puede tomar6 7 4
. Si se elige el segundo formato de entrada, una entrada de 6 debería resultar en un edificio de 3 pisos, 7 debería ser un edificio de 3 pisos con techos inclinados, etc. - El resultado debe ser exactamente como se describe anteriormente, pero los espacios finales y las nuevas líneas están bien.
- El formato exacto de la entrada es opcional. Lo que sea mejor en tu idioma.
- El resultado debe mostrarse en la pantalla, para que los arquitectos puedan verlo.
- Puede suponer que habrá al menos un número entero dado, y que solo se proporcionará una entrada válida.
Este es codegolf, por lo que gana el código más corto en bytes.