У сьогоднішньому епізоді AAOD ми збираємося побудувати китайську святиню різної висоти.
Розглянемо наступні приклади для висоти ( 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
th Shrine of Chinese - Новий рядок не є обов'язковим.
- Не повинно бути або пробілів, або достатньо пробілів, щоб розмістити висновок у мінімальному обмежувальному прямокутнику.
- Не повинно бути провідних пробілів, які не входять до шаблону.
Таблиця лідерів
Перший пост серії генерує таблицю лідерів.
Щоб переконатися, що ваші відповіді відображаються, будь ласка, почніть кожну відповідь із заголовка, використовуючи такий шаблон Markdown:
# Language Name, N bytes
де N
розмір вашого подання. Якщо ви покращите свій рахунок, ви можете зберегти старі бали у заголовку, прокресливши їх. Наприклад:
# Ruby, <s>104</s> <s>101</s> 96 bytes
N=1
, чи не є перша дах занадто довгою (широкою)?
#
поруч із .
опорою ]
та [
над нею. Про початковий розмір даху - такий розмір даху у верхній даху кожної висоти.
N=1
випадку? Чому б не 3 і мати менші бічні вікна, як уN=2
випадку?