Introducción
Los cactus vienen en diferentes tamaños, formas y colores. Sin embargo, el cactus más emblemático y imprescindible en todos los occidentales tiene que ser el saguaro . Las características importantes son su tamaño y brazos, que han definido la apariencia estereotípica de los cactus.
Su tarea es traer el saguaro al mundo ASCII. Sin embargo, como en el mundo real, ningún saguaro es como otro, por lo que su programa debe ser capaz de generar saguaros con diferentes configuraciones de brazo.
Un ejemplo de saguaro
- Entrada:
[0b10, 0b11]
([2, 3]
en decimal, longitud de entrada de2
)
_
/ \
_ | |
/ \ | |
| | | |
\ \_| |
\__ |
\ |
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
| |
| |
Presupuesto
Un saguaro siempre tiene una base y una parte superior, con cantidades variables de tallo en el medio. Las partes del tallo no pueden tener brazos, un brazo a la derecha, uno a la izquierda o dos brazos.
Los patrones de crecimiento de Saguaro se proporcionan como una lista de entrada que contiene valores de dos bits. 00
significa sin brazos, 01
un brazo a la derecha, 10
un brazo a la izquierda y11
dos brazos (todo en binario). La longitud de la lista de entrada determina la altura del saguaro.
Las secciones de Saguaro tienen el siguiente aspecto. Las partes del cactus están rodeadas de octothorps #
, para mayor claridad que no se imprimirá.
La altura de un saguaro siempre es igual a los 4+6*k
caracteres para enteros no negativos 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
# | | #
#############
Entrada
Como se dijo anteriormente, la entrada consiste en una lista de valores de dos bits ( 0, 1, 2, 3
en decimal). Se puede dar en cualquier formato razonable. El primer elemento de la lista corresponde a la parte más alta del tallo del saguaro, el segundo elemento a su segunda parte más alta del tallo, etc.
Si lo desea, puede requerir la longitud de la lista de entrada como una entrada adicional. Especifíquelo en su respuesta si lo hace.
Salida
Su salida ASCII saguaro debe construirse utilizando las partes exactas del vástago como se describió anteriormente. Los espacios finales en una línea y las nuevas líneas finales se ignoran; puede imprimir más, menos o tantos como se especifica arriba.
Reglas
- Se aplican lagunas estándar
- Siendo este código de golf , el recuento de bytes de un programa debe ser mínimo
Casos de prueba
- Un valor atípico. Entrada:
[0b01, 0b00, 0b01, 0b11]
_
/ \
| | _
| | / \
| | | |
| |_/ /
| __/
| /
| |
| |
| |
| |
| |
| |
| | _
| | / \
| | | |
| |_/ /
| __/
| /
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
| |
| |
- Alternancia de brazos. Entrada:
[0b10, 0b01, 0b10]
_
/ \
_ | |
/ \ | |
| | | |
\ \_| |
\__ |
\ |
| | _
| | / \
| | | |
| |_/ /
| __/
| /
_ | |
/ \ | |
| | | |
\ \_| |
\__ |
\ |
| |
| |
- Una abundancia de armas. Entrada:
[0b11, 0b11]
_
/ \
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
| |
| |
- Sin armas, también conocido como lanza. Entrada:
[0b00]
_
/ \
| |
| |
| |
| |
| |
| |
| |
| |
- Sin cuerpo, algunos lo llaman un cactus joven. Entrada:
[]
_
/ \
| |
| |
4 1 0 1 3
)