Berikut adalah manusia salju seni ASCII sederhana :
_===_
(.,.)
( : )
( : )
Mari kita membuatnya menjadi teman. Ini akan menjadi pola umum bagi orang-orang salju seni ASCII kami:
HHHHH
HHHHH
X(LNR)Y
X(TTT)Y
(BBB)
Ruang utama dan tanda kurung selalu sama untuk semua orang salju. Huruf yang berbeda mewakili bagian dari pola yang dapat diubah secara individual. Setiap bagian memiliki tepat empat preset untuk karakter ASCII yang dapat mengisinya. Dengan mencampur dan mencocokkan preset ini untuk semua delapan bagian, kita dapat membuat berbagai orang salju.
Semua Preset
(Perhatikan bahwa spasi diletakkan pada garis yang kosong sehingga bentuk bagian selalu benar.)
H untuk Hat
Topi jerami
_===_
Topi Meksiko
___ .....
Fez
_ /_\
-
___ (_*_)
N untuk Hidung / Mulut
Normal
,
Dot
.
Baris
_
Tidak ada
L adalah untuk Mata Kiri
Dot
.
Dot yang lebih besar
o
Dot Terbesar
O
Tutup
-
R adalah untuk Mata Kanan
(Daftar yang sama dengan mata kiri.)
X untuk Lengan Kiri
Lengan Normal
<
Lengan ke atas
\
Lengan ke bawah
/
Tidak ada
Y untuk Arm Kanan
Lengan Normal
>
Lengan ke atas
/
Lengan ke bawah
\
Tidak ada
T untuk Torso
Tombol
:
Rompi
] [
Senjata ke dalam
> <
Tidak ada
B untuk Base
Tombol
:
Kaki
" "
Datar
___
Tidak ada
Tantangan
Tulis sebuah program yang menggunakan string delapan karakter (melalui stdin atau baris perintah) dalam format HNLRXYTB
, di mana setiap huruf adalah angka dari 1 hingga 4 yang menunjukkan preset yang akan digunakan untuk bagian yang sesuai dari snowperson tersebut. Cetak orang salju penuh ke stdout.
Misalnya, inputnya 11114411
adalah manusia salju di bagian atas halaman. (Pertama 1
: ia memiliki topi jerami, kedua 1
: hidungnya normal, dll.)
Contoh lain, orang salju untuk input 33232124
:
_
/_\
\(o_O)
(] [)>
( )
Detail
Jumlah dan kombinasi spasi terkemuka / trailing dan baris baru terkemuka / tertinggal diperbolehkan selama ...
- orang salju memiliki semua bagian mereka diatur dengan benar sehubungan satu sama lain, dan
- tidak ada lebih dari 64 karakter spasi putih total (pola umum hanya 7 × 5, jadi Anda mungkin tidak akan mencapai batas ini).
Anda tidak perlu mencetak baris / kolom dari pola jika hanya berisi spasi kosong. mis. garis kosong dari topi jerami tidak diperlukan.
Anda harus menggunakan pemesanan suku cadang seperti yang diberikan di atas.
Alih-alih sebuah program, Anda dapat menulis fungsi yang menggunakan string digit sebagai argumen. Keluaran harus dicetak secara normal atau dikembalikan sebagai string.
- Anda dapat memperlakukan input sebagai bilangan bulat, bukan string jika lebih disukai.
Mencetak gol
Kode terpendek dalam byte menang.
Pertanyaan bonus: Manakah dari 65536 orang salju yang berbeda yang menjadi favorit Anda?