Como parte de um projeto de planejamento da cidade, você recebeu a tarefa de criar um programa ou função que exibirá o horizonte da cidade, com algumas informações dos arquitetos. O projeto está apenas na fase de inicialização, portanto, um esboço bastante aproximado é suficiente. A abordagem mais fácil é, obviamente, simplesmente desenhar o horizonte na arte ASCII.
Todos os prédios ficam à beira do rio, portanto, todos estão alinhados. Os arquitetos fornecerão a altura de cada edifício como entrada, e seu código deverá exibir o horizonte.
A entrada dos arquitetos será um inteiro ou um meio inteiro. Se o número for um número inteiro, o edifício terá um telhado plano, enquanto um meio inteiro resultará em um telhado inclinado. Um zero será apenas terreno plano. As paredes de um prédio são separadas por 3 caracteres, enquanto um zero terá um único caractere de largura. Edifícios adjacentes compartilham paredes.
Para detalhes e esclarecimentos sobre a saída, consulte os exemplos abaixo:
N = 3
___
| |
| |
|___|
N = 3.5
_
/ \
| |
| |
|___|
N = 6
___
| |
| |
| |
| |
| |
|___|
n = 0
_
Exemplo de entrada: 3 3.5 0 2
_
___ / \
| | | ___
| | | | |
|___|___|_|___|
Exemplo de entrada: 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
___ ___
| | | | ___
_ ___ ___ ___| | | | | |
/ \ | | | | | | | | | | |
___ | | | |___| |___| | | | | | |
| |___| | | | | | | | |___| | | |___
_|___|___|___|_|___|___|___|___|___|___|___|___|_|___|___|
Os caracteres ASCII utilizados são: nova linha, espaço e /\_|
(pontos de código 10, 32, 47, 92, 95, 124).
Regras:
- É opcional criar um programa que aceite apenas números inteiros como entrada, multiplicando todos os números por dois. Então, em vez de tomar
3 3.5 2
, seu programa pode demorar6 7 4
. Se o segundo formato de entrada for escolhido, uma entrada de 6 deve resultar em um prédio de 3 andares, 7 deve ser um prédio de 3 andares com telhados inclinados etc. - A saída deve ser exatamente como descrito acima, mas espaços à direita e novas linhas estão OK.
- O formato exato da entrada é opcional. O que há de melhor no seu idioma.
- O resultado deve ser exibido na tela, para que os arquitetos possam dar uma olhada.
- Você pode assumir que haverá pelo menos um número inteiro fornecido e que somente a entrada válida será fornecida.
Este é um codegolf, então o código mais curto em bytes vence.