Вызов
Напишите программу, которая принимает массив целых чисел 11x11 и строит построение блоков 3D ASCII, где каждое значение в массиве представляет высоту столбца блоков в координатах, соответствующих позиции массива. Отрицательная высота - это «плавающий» столбец - виден только верхний блок.
пример
__________________
___ /\__\__\__\__\__\__\
3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /\__\ /\/\__\__\__\__\__\__\
2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /\/__/ /\/\/__/__/__/__/__/__/
2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /\/\__\ /\/\/\__\ /\/\/__/
1, 0, 0, 7,-7,-7,-7,-7, 7, 0, 0, \/\/\__\ /\/\/\/__/ /\/\/__/
0, 0, 0, 7,-7,-7,-7,-7, 7, 0, 0, \/\/__/ /\/\/\/\__\ /\/\/__/
0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, \/\__\ /\/\/\/\/__/ /\/\/__/
0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, \/__/ \/\/\/\/\__\_ \/\/__/
1, 0, 0, 4, 3, 2, 1, 0, 0, 0, 1, \/\/\/\/__/_\_ \/__/
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, ___ \/\/\/__/__/_\_ ___
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /\__\ \/\/__/__/__/_\ /\__\
1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, \/\__\ \/__/__/__/__/ \/\__\
\/\__\_________ ______\/\__\
\/\__\__\__\__\ /\__\__\__\__\
\/__/__/__/__/ \/__/__/__/__/
вход
Входными данными будет список из 121 целого числа, либо считанный из стандартного ввода (выбор разделителя на ваше усмотрение), либо переданный в виде массива (может быть 1D или 2D).
Высоты будут в диапазоне от -11 до 11.
Выход
Сгенерированное здание может быть записано в стандартный вывод, отображено непосредственно на экране или возвращено в виде строки, разделенной новой строкой.
Лидирующие и конечные пробелы разрешены.
Строительные Правила
Форма отдельного трехмерного блока выглядит следующим образом:
___
/\__\
\/__/
И куб блоков 2х2х2 выглядит так:
______
/\__\__\
/\/\__\__\
\/\/__/__/
\/__/__/
Когда блоки перекрываются, более высокий блок имеет приоритет над более низким, блоки впереди имеют приоритет над теми, что дальше сзади, а блоки слева имеют приоритет над правыми. Единственный особый случай заключается в том, что верхняя строка блока никогда не должна перезаписывать никакие непробельные символы позади него.
Интерпретация высоты столбцов может быть лучше всего объяснена, если посмотреть на 2D-представление сбоку.
HEIGHT: 1 2 3 -3 -2 -1
__ __
__ |__| |__| __
__ |__| |__| |__| __
|__| |__| |__| |__|
Тестовые случаи
Если вы хотите опробовать свое решение на нескольких входах, я собрал пару тестовых примеров здесь .
выигрыш
Это код-гольф , поэтому выигрывает самое короткое представление (в байтах).