introduction
Les cactus sont disponibles en différentes tailles, formes et couleurs. Cependant, le cactus et les incontournables les plus emblématiques de tous les occidentaux doivent être le saguaro . Les caractéristiques importantes sont sa taille et ses bras, qui ont défini l'apparence stéréotypée du cactus.
Votre tâche est d'amener le saguaro dans le monde ASCII. Cependant, comme dans le monde réel, aucun saguaro n'est comme un autre, votre programme doit donc être capable de générer des saguaros avec différentes configurations de bras.
Un exemple saguaro
- Entrée:
[0b10, 0b11]
([2, 3]
en décimal, longueur d'entrée de2
)
_
/ \
_ | |
/ \ | |
| | | |
\ \_| |
\__ |
\ |
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
| |
| |
Caractéristiques
Un saguaro a toujours une base et un sommet, avec des quantités variables de tige entre les deux. Les parties de tige ne peuvent pas avoir de bras, un bras à droite, un à gauche ou deux bras.
Les modèles de croissance Saguaro sont donnés sous forme de liste d'entrée contenant des valeurs à deux bits. 00
signifie pas de bras, 01
un bras à droite, 10
un bras à gauche et 11
deux bras (tous en binaire). La longueur de la liste d'entrée détermine la hauteur du saguaro.
Les sections Saguaro ressemblent à ceci. Les parties de cactus sont entourées d'octothorps, #
pour plus de clarté qui ne doit pas être imprimée.
La hauteur d'un saguaro est toujours égale aux 4+6*k
caractères des entiers non négatifs 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
# | | #
#############
Contribution
Comme indiqué précédemment, l'entrée se compose d'une liste de valeurs à deux bits ( 0, 1, 2, 3
en décimal). Il peut être donné dans n'importe quel format raisonnable. Le premier élément de la liste correspond à la partie de tige la plus haute du saguaro, le deuxième élément à sa deuxième partie de tige la plus haute, etc.
Si vous le souhaitez, vous pouvez exiger la longueur de la liste d'entrée comme entrée supplémentaire. Veuillez le préciser dans votre réponse si vous le faites.
Sortie
Votre saguaro ASCII de sortie doit être construit en utilisant les pièces de tige exactes comme décrit ci-dessus. Les espaces de fin sur une ligne et les nouvelles lignes de fin sont ignorés; vous pouvez imprimer plus, moins ou autant que spécifié ci-dessus.
Règles
- Des échappatoires standard s'appliquent
- Ceci étant du code-golf , le nombre d'octets d'un programme doit être minimal
Cas de test
- Une valeur aberrante. Contribution:
[0b01, 0b00, 0b01, 0b11]
_
/ \
| | _
| | / \
| | | |
| |_/ /
| __/
| /
| |
| |
| |
| |
| |
| |
| | _
| | / \
| | | |
| |_/ /
| __/
| /
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
| |
| |
- Bras alternés. Contribution:
[0b10, 0b01, 0b10]
_
/ \
_ | |
/ \ | |
| | | |
\ \_| |
\__ |
\ |
| | _
| | / \
| | | |
| |_/ /
| __/
| /
_ | |
/ \ | |
| | | |
\ \_| |
\__ |
\ |
| |
| |
- Une abondance d'armes. Contribution:
[0b11, 0b11]
_
/ \
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
| |
| |
- Pas d'armes, également connu comme une lance. Contribution:
[0b00]
_
/ \
| |
| |
| |
| |
| |
| |
| |
| |
- Aucun corps, certains l'appellent un jeune cactus. Contribution:
[]
_
/ \
| |
| |
4 1 0 1 3
)