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
o
Punto più grande
O
Chiuso
-
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?