В сегодняшнем эпизоде AAOD мы собираемся построить китайский храм различной высоты.
Рассмотрим следующие примеры для height ( N
) 1
для6
N = 1
:
.
|
. ]#[ .
\_______/
. ]###[ .
\__]#.-.#[__/
|___| |___|
|___|_|___|
####/_\####
|___|
/_____\
N = 2
:
.
|
. ]#[ .
\_______/
. ]###[ .
\___________/
. ]#####[ .
\___]#.---.#[___/
|__|_| |_|__|
|__|_|___|_|__|
#####/___\#####
|_____|
/_______\
N = 3
:
.
|
. ]#[ .
\_______/
. ]###[ .
\___________/
. ]#####[ .
\_______________/
. ]#######[ .
\____]#.-----.#[____/
|__|__| |__|__|
|__|__|_____|__|__|
######/_____\######
|_______|
/_________\
N = 4
:
.
|
. ]#[ .
\_______/
. ]###[ .
\___________/
. ]#####[ .
\_______________/
. ]#######[ .
\___________________/
. ]#########[ .
\_____]##.-----.##[_____/
|__|__|_| |_|__|__|
|__|__|_|_____|_|__|__|
########/_____\########
|_______|
/_________\
N = 5
:
.
|
. ]#[ .
\_______/
. ]###[ .
\___________/
. ]#####[ .
\_______________/
. ]#######[ .
\___________________/
. ]#########[ .
\_______________________/
. ]###########[ .
\______]###.-----.###[______/
|__|__|___| |___|__|__|
|__|__|___|_____|___|__|__|
##########/_____\##########
|_______|
/_________\
N = 6
:
.
|
. ]#[ .
\_______/
. ]###[ .
\___________/
. ]#####[ .
\_______________/
. ]#######[ .
\___________________/
. ]#########[ .
\_______________________/
. ]###########[ .
\___________________________/
. ]#############[ .
\_______]####.-----.####[_______/
|__|__|__|__| |__|__|__|__|
|__|__|__|__|_____|__|__|__|__|
############/_____\############
|_______|
/_________\
и так далее.
Детали конструкции
Я уверен, что большинство деталей о шаблоне ясны. Вот некоторые более мелкие детали:
- Дверь в нижней части храма может иметь минимальную
1
_
ширину и максимальную5
_
ширину. - Всегда будет два
.
над столбами вокруг двери (два вертикальных|
). - Лестница начинается с той же ширины, что и дверь, и увеличивается, как показано на схеме.
- Эти
]##..##[
блоки над каждым уровнем крыши увеличиваются в размерах2
от верхней части к нижней части . - Эти
\__...__/
уровни крыши увеличиваются в размерах4
от верхней части к нижней части . - Блоки стен вокруг двери должны как минимум содержать
1
_
и как максимум3
_
между ними|
. Приоритет отдается блокам наружной стены, поэтому ближайший к двери блок имеет различный размер для каждого уровня. - Пространство между
.
и]
(или[
) заполнено#
в крыше прямо над дверями.
Детали вызова
- Напишите функцию или полную программу, которая читает положительное целое число больше, чем
0
через STDIN / ARGV / аргумент функции или ближайший эквивалент, и выводит (в STDOUT или ближайший эквивалент)N
китайский храм - Трейлинг новой строки не является обязательным.
- Не должно быть либо пробелов в конце, либо пробелов, достаточных для заполнения вывода в минимальном ограничивающем прямоугольнике.
- Не должно быть никаких начальных пробелов, которые не являются частью шаблона.
Leaderboard
Первый пост серии генерирует таблицу лидеров.
Чтобы убедиться, что ваши ответы отображаются, начните каждый ответ с заголовка, используя следующий шаблон уценки:
# Language Name, N bytes
где N
размер вашего представления. Если вы улучшите свой счет, вы можете сохранить старые результаты в заголовке, вычеркнув их. Например:
# Ruby, <s>104</s> <s>101</s> 96 bytes
N=1
случае, не является ли первая крыша слишком длинной (широкой)?
#
рядом с ней не было бы никакой .
опоры ]
и [
над ней. О начальном размере крыши - это размер крыши в верхней крыше каждой высоты.
N=1
корпусе? Почему бы не 3 и иметь меньшие боковые окна, как вN=2
случае?