Вступ
Кактуси бувають різних розмірів, форм і кольорів. Однак найвідомішим кактусом і обов'язковим у всіх західних має бути сагуаро . Важливими особливостями є його розмір і руки, які визначили вигляд стереотипного кактуса.
Ваше завдання - принести сагуаро у світ ASCII. Однак - як у реальному світі - жоден сагуаро не схожий на інший, тому ваша програма повинна бути здатна генерувати сагуаро з різною конфігурацією зброї.
Приклад сагуаро
- Введення:
[0b10, 0b11]
([2, 3]
у десятковій частині, довжина введення2
)
_
/ \
_ | |
/ \ | |
| | | |
\ \_| |
\__ |
\ |
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
| |
| |
Технічні умови
Сагуаро завжди має основу і верх, з різною кількістю стебла між ними. Частини стебла можуть не мати руки, рука справа, одна зліва або дві руки.
Шаблони росту Сагуаро подаються у вигляді вхідного списку, що містить двобітні значення. 00
означає відсутність руки, 01
рука праворуч, 10
рука зліва та 11
дві руки (усі у двійковій). Довжина списку входів визначає висоту сагуаро.
Розділи Сагуаро виглядають наступним чином. Частини кактуса оточені октоторпами #
, для наочності не слід друкувати.
Висота сагуаро завжди дорівнює 4+6*k
символам для негативних цілих чисел k
.
#############
# _ # Saguaro top
# / \ #
#############
# _ | | _ # Stem, both arms
#/ \ | | / \# Stem id: 11
#| | | | | |#
#\ \_| |_/ /#
# \__ __/ #
# \ / #
#############
# _ | | # Stem, left arm
#/ \ | | # Stem id: 10
#| | | | #
#\ \_| | #
# \__ | #
# \ | #
#############
# | | _ # Stem, right arm
# | | / \# Stem id: 01
# | | | |#
# | |_/ /#
# | __/ #
# | / #
#############
# | | # Stem, no arms
# | | # Stem id: 00
# | | #
# | | #
# | | #
# | | #
#############
# | | # Saguaro base
# | | #
#############
Вхідні дані
Як було сказано раніше, вхід складається із списку двобітних значень ( 0, 1, 2, 3
у десятковій кількості). Він може бути наданий у будь-якому розумному форматі. Перший елемент списку відповідає найвищій стовбуровій частині saguaro, другий елемент - його другій найвищій стовбуровій частині і т. Д.
Якщо потрібно, ви можете вимагати довжини списку введення як додатковий вхід. Будь ласка, вкажіть це у своїй відповіді, якщо ви це зробите.
Вихід
Ваш вихід ASCII saguaro повинен бути побудований з використанням точних деталей стебла, як описано вище. Проміжки проміжку на рядку та нові нові лінії ігноруються; ви можете надрукувати більше, менше або стільки, скільки зазначено вище.
Правила
- Застосовуються стандартні лазівки
- Оскільки код-гольф , кількість байтів програми повинна бути мінімальною
Тестові справи
- Чужа людина. Вхід:
[0b01, 0b00, 0b01, 0b11]
_
/ \
| | _
| | / \
| | | |
| |_/ /
| __/
| /
| |
| |
| |
| |
| |
| |
| | _
| | / \
| | | |
| |_/ /
| __/
| /
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
| |
| |
- Чергові руки. Вхід:
[0b10, 0b01, 0b10]
_
/ \
_ | |
/ \ | |
| | | |
\ \_| |
\__ |
\ |
| | _
| | / \
| | | |
| |_/ /
| __/
| /
_ | |
/ \ | |
| | | |
\ \_| |
\__ |
\ |
| |
| |
- Достаток зброї. Вхід:
[0b11, 0b11]
_
/ \
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
| |
| |
- Без зброї, також відомий як спис. Вхід:
[0b00]
_
/ \
| |
| |
| |
| |
| |
| |
| |
| |
- Жодного тіла, деякі називають це молодим кактусом. Вхід:
[]
_
/ \
| |
| |
4 1 0 1 3
)