Hier ist ein einfacher ASCII-Kunstschneemann :
_===_
(.,.)
( : )
( : )
Machen wir ihm ein paar Freunde. Dies wird das allgemeine Muster für unsere ASCII-Kunstschneefahrer sein:
HHHHH
HHHHH
X(LNR)Y
X(TTT)Y
(BBB)
Die führenden Leerzeichen und die Klammern sind für alle Schneemänner immer gleich. Die verschiedenen Buchstaben stellen Abschnitte des Musters dar, die sich individuell ändern können. Jeder Abschnitt verfügt über genau vier Vorgaben, mit denen ASCII-Zeichen gefüllt werden können. Durch Mischen und Anpassen dieser Voreinstellungen für alle acht Abschnitte können wir eine Vielzahl von Schneemännern erstellen.
Alle Voreinstellungen
(Beachten Sie, dass Leerzeichen in ansonsten leere Zeilen gesetzt werden, damit die Abschnittsform immer korrekt ist.)
H ist für Hut
Strohhut
_===_
Mexikanischer Hut
___ .....
Fez
_ /_\
-
___ (_*_)
N ist für Nase / Mund
Normal
,
Punkt
.
Linie
_
Keiner
L steht für das linke Auge
Punkt
.
Größerer Punkt
o
Größter Punkt
O
Geschlossen
-
R steht für das rechte Auge
(Gleiche Liste wie linkes Auge.)
X steht für den linken Arm
Normaler Arm
<
Arm nach oben
\
Arm nach unten
/
Keiner
Y steht für den rechten Arm
Normaler Arm
>
Arm nach oben
/
Arm nach unten
\
Keiner
T ist für Torso
Tasten
:
Weste
] [
Innere Arme
> <
Keiner
B steht für Base
Tasten
:
Füße
" "
Eben
___
Keiner
Herausforderung
Schreiben Sie ein Programm, das HNLRXYTB
eine achtstellige Zeichenfolge (über stdin oder Befehlszeile) in dem Format enthält , in dem jeder Buchstabe eine Ziffer von 1 bis 4 ist, die angibt, welche Voreinstellung für den entsprechenden Abschnitt des Schneemanns verwendet werden soll. Drucken Sie den vollen Schneemann auf stdout.
Die Eingabe 11114411
ist beispielsweise der Schneemann oben auf der Seite. (Erstens 1
: Er hat einen Strohhut, zweitens 1
: Er hat eine normale Nase usw.)
Ein weiteres Beispiel, der Schneemann für die Eingabe 33232124
:
_
/_\
\(o_O)
(] [)>
( )
Einzelheiten
Beliebige Mengen und Kombinationen von führenden / nachfolgenden Leerzeichen und führenden / nachfolgenden Zeilenumbrüchen sind zulässig, solange ...
- der Schneemann hat alle seine Abschnitte richtig zueinander angeordnet, und
- Es gibt nie mehr als 64 Whitespace-Zeichen insgesamt (das allgemeine Muster ist nur 7 × 5, sodass Sie dieses Limit wahrscheinlich nicht erreichen werden).
Sie müssen keine Zeilen / Spalten des Musters drucken, wenn sie nur Leerzeichen enthalten. zB die Leerzeile des Strohhutes wird nicht benötigt.
Sie müssen die oben angegebene Reihenfolge der Teile verwenden.
Anstelle eines Programms können Sie eine Funktion schreiben, die die Ziffernfolge als Argument verwendet. Die Ausgabe sollte normal gedruckt oder als Zeichenfolge zurückgegeben werden.
- Bei Bedarf können Sie die Eingabe als Ganzzahl anstelle einer Zeichenfolge behandeln.
Wertung
Der kürzeste Code in Bytes gewinnt.
Bonusfrage : Welcher der 65536 verschiedenen Schneemänner ist Ihr Favorit?