Weil es Samstag (UTC) ist und ich Hunger habe, hätte ich gerne ein Stück Pizza. Ich gebe dir eine Bestellung und möchte eine schöne heiße ASCII- Pizza. Der Herausforderung gewachsen?
Die Drive-Thru
Ich werde meine Bestellung überall dort aufgeben, wo sich Ihr Laufwerk befindet, ob es sich um STDIN, einen Funktionsparameter oder ein Befehlszeilenargument handelt, aber ich werde es nicht in eine Variable für Sie einfügen. (JS-Funktionsausdrücke müssen einer Variablen zugewiesen werden.)
Die Bestellung
Meine Bestellung wird 2 Teile haben. Die erste ist eine positive Ganzzahl ungleich Null von 3
bis 6
. Das ist die Größe meiner Pizza. Zum Beispiel würde eine Größe 6
Pizza ohne Belag wie folgt aussehen:
/=====\
/ \
| |
| |
\ /
\=====/
Eine Größe 5
:
/====\
/ \
| |
\ /
\====/
Eine Größe 4
:
/===\
| |
| |
\===/
Eine Größe 3
/==\
| |
\==/
Die Beläge
Meine Beläge werden eine Folge von Großbuchstaben sein. Hier sind die möglichen Werte:
P - Peperoni S - Wurst N - piNeapple J - Jalapenos B - Bananenpaprika C - baCon
Sie müssen irgendwo auf die Pizza passen. Wenn ich Größe 4 und bestelle PSPCJ
, ist dies eine gültige Ausgabe:
/===\
|PSPCJ|
| |
\===/
Also das ist:
/===\
|P P J|
| S C |
\===/
Und das:
/===\
| |
|PSPCJ|
\===/
Ich bin nicht sehr wählerisch, wo sich meine Beläge auf der Pizza befinden, solange sie nicht auf der Kruste oder übereinander liegen.
Das Abholfenster
Ich werde an viele Orte gehen, um meine Pizza abzuholen, einschließlich STDOUT, eine Datei, den Rückgabewert einer Funktion, aber keine Variable.
Zusätzliches Zeug
- Standardlücken verboten
- Dies ist mit Code-Golf gekennzeichnet, so dass die kürzeste Antwort in Bytes gewinnt!
- Mach dir keine Sorgen über ungültige Eingaben (Beläge> Pizzaraum usw.)
- Siehe meine Antwort (JS ES6) unten für ein Beispiel (ich hoffe, Sie können es besser machen)
̶5̶,̶ ̶N̶N̶N̶
̶ ist auch ein gültiger Eingang ̶ (oder sollte es ̶ ̶5̶,̶ ̶N̶
̶ anstelle) ̶ ̶ Auch dort, wo die Pilze ..? :( BEARBEITEN: Vergiss die erste Frage, ich sehe deine Testfälle hat 2x P
.