Ecco un semplice pupazzo di neve di arte ASCII :
_===_
(.,.)
( : )
( : )
Facciamolo degli amici. Questo sarà lo schema generale per i nostri pupazzi di neve di arte ASCII:
HHHHH
HHHHH
X(LNR)Y
X(TTT)Y
(BBB)
Gli spazi principali e le parentesi sono sempre gli stessi per tutti gli snowpeople. Le diverse lettere rappresentano sezioni del modello che possono cambiare individualmente. Ogni sezione ha esattamente quattro preset per ciò che i caratteri ASCII possono riempire. Mescolando e abbinando questi preset per tutte e otto le sezioni, possiamo creare una varietà di snowpeople.
Tutti i preset
(Notare che gli spazi vengono posizionati su linee vuote altrimenti la forma della sezione è sempre corretta.)
H è per Hat
Cappello di paglia
_===_Cappello messicano
___ .....Fez
_ /_\-
___ (_*_)
N sta per Naso / Bocca
Normale
,Punto
.Linea
_Nessuna
L è per l'occhio sinistro
Punto
.Punto più grande
oPunto più grande
OChiuso
-
R è per l'occhio destro
(Stesso elenco dell'occhio sinistro.)
X è per il braccio sinistro
Braccio normale
<Braccio verso l'alto
\Braccio verso il basso
/Nessuna
Y è per il braccio destro
Braccio normale
>Braccio verso l'alto
/Braccio verso il basso
\Nessuna
T sta per Torso
pulsanti
:Veste
] [Armi interne
> <Nessuna
B sta per Base
pulsanti
:piedi
" "Piatto
___Nessuna
Sfida
Scrivi un programma che includa una stringa di otto caratteri (tramite stdin o riga di comando) nel formato HNLRXYTB, in cui ogni lettera è una cifra compresa tra 1 e 4 che indica quale preimpostazione utilizzare per la sezione corrispondente del pupazzo di neve. Stampa l'intero pupazzo di neve su stdout.
Ad esempio, l'input 11114411è il pupazzo di neve nella parte superiore della pagina. (Primo 1: ha un cappello di paglia, secondo 1: ha un naso normale, ecc.)
Un altro esempio, il pupazzo di neve per l'input 33232124:
_
/_\
\(o_O)
(] [)>
( )
Dettagli
Sono consentiti importi e combinazioni di spazi iniziali / finali e newline iniziali / finali purché ...
- il pupazzo di neve ha tutte le sezioni disposte correttamente l'una rispetto all'altra, e
- non ci sono mai più di 64 caratteri di spazi bianchi totali (il modello generale è solo 7 × 5, quindi probabilmente non raggiungerai questo limite).
Non è necessario stampare righe / colonne del motivo se contengono solo spazi bianchi. ad es. la linea vuota del cappello di paglia non è richiesta.
È necessario utilizzare l'ordinamento delle parti come indicato sopra.
Invece di un programma, è possibile scrivere una funzione che accetta la stringa di cifre come argomento. L'output deve essere stampato normalmente o restituito come stringa.
- Se lo si preferisce, è possibile considerare l'input come un numero intero anziché una stringa.
punteggio
Vince il codice più breve in byte.
Domanda bonus: quale dei 65536 distinti pupazzi di neve è il tuo preferito?