pengantar
Cacti tersedia dalam berbagai ukuran, bentuk dan warna. Namun, kaktus yang paling ikonik dan harus dimiliki di setiap negara Barat haruslah saguaro . Fitur penting adalah ukuran dan lengannya, yang telah menentukan penampilan kaktus stereotip.
Tugas Anda adalah membawa saguaro di dunia ASCII. Namun, - seperti di dunia nyata - tidak ada saguaro seperti yang lain, sehingga program Anda harus dapat menghasilkan saguaros dengan berbagai konfigurasi lengan.
Contoh saguaro
- Input:
[0b10, 0b11]
([2, 3]
dalam desimal, panjang input2
)
_
/ \
_ | |
/ \ | |
| | | |
\ \_| |
\__ |
\ |
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
| |
| |
Spesifikasi
Saguaro selalu memiliki dasar dan puncak, dengan jumlah variabel batang di antaranya. Bagian batang tidak memiliki lengan, lengan di kanan, satu di kiri atau dua lengan.
Pola pertumbuhan Saguaro diberikan sebagai daftar input yang berisi nilai dua-bit. 00
berarti tidak ada lengan, 01
lengan di sebelah kanan, 10
lengan di sebelah kiri dan 11
dua lengan (semuanya dalam biner). Panjang daftar input menentukan tinggi saguaro.
Bagian Saguaro terlihat seperti berikut. Bagian kaktus dikelilingi oleh octothorps #
, untuk kejelasan yang tidak akan dicetak.
Tinggi saguaro selalu sama dengan 4+6*k
karakter untuk bilangan bulat tidak negatif 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
# | | #
#############
Memasukkan
Seperti yang dikatakan sebelumnya, input terdiri dari daftar nilai dua-bit ( 0, 1, 2, 3
dalam desimal). Itu dapat diberikan dalam format apa pun yang masuk akal. Elemen pertama daftar sesuai dengan bagian batang tertinggi saguaro, elemen kedua ke bagian batang tertinggi kedua, dll.
Jika Anda mau, Anda bisa memerlukan panjang daftar input sebagai input tambahan. Silakan tentukan dalam jawaban Anda jika Anda melakukannya.
Keluaran
Saguaro ASCII keluaran Anda harus dibangun menggunakan bagian-bagian batang yang tepat seperti dijelaskan di atas. Mengejar ruang pada garis dan mengikuti garis baru diabaikan; Anda dapat mencetak lebih banyak, lebih sedikit atau sebanyak yang ditentukan di atas.
Aturan
- Celah standar berlaku
- Dengan kode-golf ini , jumlah byte program harus minimal
Uji kasus
- Pencilan. Memasukkan:
[0b01, 0b00, 0b01, 0b11]
_
/ \
| | _
| | / \
| | | |
| |_/ /
| __/
| /
| |
| |
| |
| |
| |
| |
| | _
| | / \
| | | |
| |_/ /
| __/
| /
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
| |
| |
- Lengan bergantian. Memasukkan:
[0b10, 0b01, 0b10]
_
/ \
_ | |
/ \ | |
| | | |
\ \_| |
\__ |
\ |
| | _
| | / \
| | | |
| |_/ /
| __/
| /
_ | |
/ \ | |
| | | |
\ \_| |
\__ |
\ |
| |
| |
- Banyaknya senjata. Memasukkan:
[0b11, 0b11]
_
/ \
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
| |
| |
- Tanpa lengan, juga dikenal sebagai tombak. Memasukkan:
[0b00]
_
/ \
| |
| |
| |
| |
| |
| |
| |
| |
- Tidak ada tubuh, beberapa menyebutnya kaktus muda. Memasukkan:
[]
_
/ \
| |
| |
4 1 0 1 3