Введение
Кактусы бывают разных размеров, форм и цветов. Тем не менее, самым знаковым кактусом и обязательным элементом в каждом западном регионе должен быть сагуаро . Важными особенностями являются его размер и руки, которые определили стереотипный внешний вид кактуса.
Ваша задача - принести сагуаро в мир ASCII. Однако, как и в реальном мире, ни один saguaro не похож на другой, поэтому ваша программа должна иметь возможность генерировать saguaros с различными конфигурациями рук.
Пример сагуаро
- Ввод:
[0b10, 0b11]
([2, 3]
в десятичном виде, длина ввода2
)
_
/ \
_ | |
/ \ | |
| | | |
\ \_| |
\__ |
\ |
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
| |
| |
Характеристики
У сагуаро всегда есть основание и верх, с переменным количеством ствола между ними. У частей стебля не может быть рук, рука справа, одна слева или две руки.
Модели роста Saguaro представлены в виде входного списка, содержащего двухбитовые значения. 00
означает отсутствие рук, 01
руку справа, 10
руку слева и 11
две руки (все в двоичном виде). Длина списка ввода определяет высоту saguaro.
Разделы Saguaro выглядят следующим образом. Части кактуса окружены октоторпами, #
для ясности, которые не должны быть напечатаны.
Высота сагуаро всегда равна 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
)