Как часть проекта городского планирования, вы получили задание на создание программы или функции, которая будет отображать городской горизонт, учитывая некоторую информацию от архитекторов. Проект находится на стадии запуска, поэтому достаточно грубого наброска. Конечно, самый простой подход - просто нарисовать горизонт в ASCII-искусстве.
Все здания будут у реки, поэтому все они выровнены. Архитекторы в качестве входных данных будут указывать высоту каждого здания, а ваш код должен отображать горизонт.
Вклад от архитекторов будет либо целым, либо полуцелым. Если число является целым числом, здание будет иметь плоскую крышу, а полуцелое - скатную крышу. Ноль будет просто плоской землей. Стены здания разделены на 3 символа, а ноль - один символ шириной. Смежные здания разделяют стены.
Для получения подробной информации и разъяснений относительно результатов, пожалуйста, посмотрите на примеры ниже:
N = 3
___
| |
| |
|___|
N = 3.5
_
/ \
| |
| |
|___|
N = 6
___
| |
| |
| |
| |
| |
|___|
n = 0
_
Пример ввода: 3 3.5 0 2
_
___ / \
| | | ___
| | | | |
|___|___|_|___|
Пример ввода: 0 0 2.5 3 0 4 1
___
_ ___ | |
/ \| | | |
| | | | |___
__|___|___|_|___|___|
Луисвилл ,0 2 1 3.5 0 4 2 4 2 4 6 1 6 0 5 1
___ ___
| | | | ___
_ ___ ___ ___| | | | | |
/ \ | | | | | | | | | | |
___ | | | |___| |___| | | | | | |
| |___| | | | | | | | |___| | | |___
_|___|___|___|_|___|___|___|___|___|___|___|___|_|___|___|
Используемые символы ASCII: новая строка, пробел и /\_|
(кодовые точки 10, 32, 47, 92, 95, 124).
Правила:
- Необязательно делать программу, которая принимает в качестве входных данных только целые числа, умножая все числа на два. Таким образом, вместо того, чтобы брать
3 3.5 2
, ваша программа может взять6 7 4
. Если выбран второй входной формат, ввод 6 должен привести к 3-этажному зданию, 7 - 3-этажному зданию с скатными крышами и т. Д. - Вывод должен быть точно таким, как описано выше, но завершающие пробелы и переводы строки в порядке.
- Точный формат ввода не является обязательным. Что бы ни было лучше на вашем языке.
- Результат должен отображаться на экране, чтобы архитекторы могли взглянуть на него.
- Вы можете предположить, что будет дано хотя бы одно целое число, и будет дан только верный ввод.
Это codegolf, поэтому выигрывает самый короткий код в байтах.