İşte basit bir ASCII sanat kardan adam:
_===_
(.,.)
( : )
( : )
Ona biraz arkadaş edelim. Bu, ASCII sanat kardan adamlarımızın genel yapısı olacaktır:
HHHHH
HHHHH
X(LNR)Y
X(TTT)Y
(BBB)
Baştaki boşluklar ve parantezler her zaman kardan adamlar için aynıdır. Farklı harfler, desenin tek tek değiştirebilecek bölümlerini temsil eder. Her bölüm, ASCII karakterlerinin doldurması için tam olarak dört hazır ayara sahiptir. Sekiz bölümün tamamı için bu ön ayarları karıştırıp eşleştirerek, çeşitli kar yağışı yapabiliriz.
Tüm hazır ayarlar
(Boşlukların aksi taktirde boş satırlara yerleştirildiğine dikkat edin, böylece bölüm şekli her zaman doğrudur.)
H Şapka için
Hasır Şapka
_===_
Meksika şapkası
___ .....
Fes
_ /_\
-
___ (_*_)
N Burun / Ağız içindir
Normal
,
Nokta
.
Hat
_
Yok
L Sol Göz içindir
Nokta
.
Büyük Nokta
o
En Büyük Nokta
O
Kapalı
-
R Sağ Göz içindir
(Sol gözle aynı liste.)
X Sol Kol içindir
Normal kol
<
Yukarı kol
\
Aşağı doğru kol
/
Yok
Y Sağ Kol içindir
Normal kol
>
Yukarı kol
/
Aşağı doğru kol
\
Yok
T Torso için
Düğmeler
:
Yelek
] [
İç kollar
> <
Yok
B Base içindir
Düğmeler
:
Ayaklar
" "
Düz
___
Yok
Meydan okuma
Formatında sekiz karakterli bir karakter dizisi (stdin veya komut satırı aracılığıyla) alan bir program yazın HNLRXYTB
; burada her harf 1'den 4'e kadar olan bir rakamdır ve kar sahibinin karşılık gelen bölümü için hangi ön ayarın kullanılacağını belirtir. Snowderson'ı stdout'a yazdır.
Örneğin, giriş 11114411
sayfanın üstündeki kardan adamdır. (Birincisi 1
: hasır şapkası var, ikincisi 1
: normal bir burnu var, vs.)
Başka bir örnek, giriş için kar küreci 33232124
:
_
/_\
\(o_O)
(] [)>
( )
ayrıntılar
Baştaki / sondaki alanların ve sondaki / sondaki yeni satırların tüm miktarlarına ve kombinasyonlarına izin verilir.
- Snowperson'un tüm bölümleri birbirlerine göre doğru bir şekilde düzenlenmiş durumda.
- hiçbir zaman toplam 64'ten fazla boşluk karakteri olmaz (genel desen yalnızca 7 × 5'tir, bu nedenle muhtemelen bu sınıra ulaşmazsınız).
Yalnızca boşluk içeriyorsa desenin satırlarını / sütunlarını yazdırmanız gerekmez. Örneğin hasır şapka boş hattı gerekli değildir.
Parçaların sıralamasını yukarıda verilen şekilde kullanmalısınız.
Bir program yerine, rakam dizesini argüman olarak alan bir işlev yazabilirsiniz. Çıktı normal şekilde yazdırılmalı veya bir dize olarak döndürülmelidir.
- İsterseniz girişi bir dize yerine bir tamsayı olarak kabul edebilirsiniz.
puanlama
Bayt cinsinden en kısa kod kazanır.
Bonus soru: 65536 ayrı kar yağışı hangisi en sevdiğinizdir?