Wprowadzenie
Kaktusy występują w różnych rozmiarach, kształtach i kolorach. Jednak najbardziej charakterystycznym kaktusem i must-have w każdym westernu musi być saguaro . Ważnymi cechami są jego rozmiar i ramiona, które określają stereotypowy wygląd kaktusa.
Twoim zadaniem jest sprowadzenie saguaro do świata ASCII. Jednak - podobnie jak w prawdziwym świecie - żadne saguaro nie jest takie jak inne, więc twój program musi być w stanie generować saguaros z różnymi konfiguracjami ramion.
Przykład saguaro
- Dane wejściowe:
[0b10, 0b11]
([2, 3]
dziesiętnie, długość wejściowa2
)
_
/ \
_ | |
/ \ | |
| | | |
\ \_| |
\__ |
\ |
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
| |
| |
Dane techniczne
Saguaro ma zawsze podstawę i górę, a pomiędzy nimi są zmienne ilości łodygi. Części trzonu nie mogą mieć ramion, ramienia po prawej stronie, ramienia po lewej ani dwóch ramion.
Wzorce wzrostu Saguaro podano jako listę wejściową zawierającą wartości dwubitowe. 00
oznacza brak ramion, 01
ramię po prawej, 10
ramię po lewej i 11
dwa ramiona (wszystkie w układzie dwójkowym). Długość listy wejściowej określa wysokość saguaro.
Sekcje Saguaro wyglądają następująco. Części kaktusa są otoczone oktorą #
, dla jasności, która nie będzie drukowana.
Wysokość saguaro jest zawsze równa 4+6*k
znakom dla liczb całkowitych nieujemnych 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
# | | #
#############
Wkład
Jak wspomniano wcześniej, dane wejściowe składają się z listy wartości dwubitowych ( 0, 1, 2, 3
dziesiętnie). Można go podać w dowolnym rozsądnym formacie. Pierwszy element listy odpowiada najwyższej części pnia saguaro, drugi element do drugiej najwyższej części pnia itp.
Jeśli chcesz, możesz wymagać długości listy danych wejściowych jako dodatkowego wejścia. Jeśli tak, proszę podać to w odpowiedzi.
Wydajność
Twój wyjściowy saguaro ASCII powinien być zbudowany przy użyciu dokładnych części trzpienia, jak opisano powyżej. Końcowe spacje na linii i końcowe nowe linie są ignorowane; możesz wydrukować więcej, mniej lub tyle, ile określono powyżej.
Zasady
- Standardowe luki zastosowanie
- Ponieważ jest to golf kod , liczba bajtów programu powinna być minimalna
Przypadki testowe
- Wartość odstająca. Wkład:
[0b01, 0b00, 0b01, 0b11]
_
/ \
| | _
| | / \
| | | |
| |_/ /
| __/
| /
| |
| |
| |
| |
| |
| |
| | _
| | / \
| | | |
| |_/ /
| __/
| /
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
| |
| |
- Ramiona naprzemienne. Wkład:
[0b10, 0b01, 0b10]
_
/ \
_ | |
/ \ | |
| | | |
\ \_| |
\__ |
\ |
| | _
| | / \
| | | |
| |_/ /
| __/
| /
_ | |
/ \ | |
| | | |
\ \_| |
\__ |
\ |
| |
| |
- Obfitość broni. Wkład:
[0b11, 0b11]
_
/ \
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
| |
| |
- Żadnych ramion, zwanych także włócznią. Wkład:
[0b00]
_
/ \
| |
| |
| |
| |
| |
| |
| |
| |
- Żadnego ciała, niektórzy nazywają to młodym kaktusem. Wkład:
[]
_
/ \
| |
| |
4 1 0 1 3
)