Hintergrundgeschichte
Nicht wirklich real, sshh!
Alles begann eines Tages, als ein Mitarbeiter zum Geburtstag meines Chefs ein hausgemachtes Brot mitbrachte .
Mein Chef mochte dieses Brot wirklich und er wollte ein anderes. Leider hat mein Kollege gekündigt, und mein Chef braucht mich , um ihm ein weiteres Brot zu geben.
Das Problem ist, ich habe keine Ahnung, wie man Brot macht. Also sagte ich meinem Chef, dass ich kein Koch bin und härter nach jemandem suchen soll, der es ist.
Er sagte: "Sicher ... aber du verlierst deinen Job, wenn du mich nicht zum Brot machen kannst."
Dann hatte ich eine Idee.
Ich würde ihn mit meinem Codierungs-Skilz zu einem ASCII-Kunst- Brot machen! Er sagte ja, unter 1 Bedingung: "Sie müssen es in weniger als 351 Bytes schaffen." Leider brachte mich mein bestes Code-Golfen auf 375 Bytes. Oh oh.
Dann fügte mein Chef zwei Dinge hinzu: "Sie müssen mir dieses Brot in einer Woche (4/13) geben, und wenn Sie dies tun, erhalten Sie ein höheres Gehalt. Je geringer die Anzahl der von Ihnen verwendeten Bytes ist, desto besser ist das Gehalt. Aber denken Sie daran, Wenn Sie über 349 gehen, verlieren Sie Ihren Job. "
Ich brauche Ihre Hilfe in der Sprache Ihrer Wahl, damit ich meinen Job behalten kann!
Regeln
Ich wollte gerade curl ... | sh
eine TinyURL machen, aber mein Chef sagte mir, dass ich keine Liste von Lücken verwenden kann . Ich könnte wahrscheinlich die Regeln umgehen, aber mein Job steht auf dem Spiel, also ist es keine gute Idee.
Was zählt als Laib
Ihr Programm oder Ihre Funktion muss 3 positive ganze Zahlen als Eingabe verwenden. Wenn Ihre Sprache eine Liste oder ein Array enthält, können Sie eine Liste oder ein Array dieser Zahlen erstellen. Sie können sie auch als Argumente für eine Funktion oder ein Programm oder als durch Leerzeichen getrennte Zahlenfolge für STDIN, als Befehlszeilen- oder Funktionsargument usw. verwenden.
Die erste Zahl ist die Breite Ihres Laibs
Die zweite Zahl ist die Höhe Ihres Laibs.
Die dritte Zahl ist die Tiefe Ihres Laibs.
Hier ist ein Laib mit einer Breite 3
, einer Höhe 2
und einer Tiefe von 1
:
/ --- \ / --- \ | | || | ___ | /
Sieht komisch aus? Hier ist ein 3x2x2:
/ --- \ / | / --- \ | | | /. | ___ | /
Wie wäre es mit einem 3x3x3:
/ --- \ / | / | / --- \ | | | /. | | /. | ___ | /
A 4x1x2:
/ ---- \ / | / ---- \ / | ____ | /
Ich hoffe, Sie verstehen! Ein Beispiel finden Sie in meiner JS (ES6) -Antwort unten.
Siehe auch vollständige Testfälle
Anmerkungen:
- Mach dir keine Sorgen über gültige Eingaben. Alle Größen sind positive ganze Zahlen.
- Sie müssen alle positiven Ganzzahlen akzeptieren, die Ihre Sprache unterstützen kann.
- Wenn die Zahlen so hoch sind, dass Ihre Sprachen durch StackOverflow, maximalen Überlauf der Zeichenfolgenlänge usw. abstürzen, ist das in Ordnung.
Antworten:
Holzkohle ,
353330 Bytes2 Bytes dank @ ASCII-only gespeichert
Dank @Neil wurden 3 Bytes gespeichert, indem die Reihenfolge neu geordnet wurde, in der die Linien gezeichnet wurden
Probieren Sie es online aus!
Dies ist mein erster Versuch bei Charcoal. Ich habe gehört, dass es gut in ASCII-Kunst ist , also habe ich es ausprobiert.
Erklärung (veraltet)
Jetzt ist der hintere Teil des Laibs fertig. Jetzt kommt die Vorderseite.
quelle
↓→
mit¶
(Newline) und\←←←ω
mit←\←ω
←\←
aber die zweite←
gehört vor dieω
in die nächste Zeile.↗δ→/
ist ein Byte kürzer als↗¹↗δ¶
, aber ich habe auch ein paar Bytes mehr gespart, indem ich die Reihenfolge, in der die Linien gezeichnet wurden, neu geordnet habe: Probieren Sie es online aus!C
270290320328 BytesSchließlich (nach
zweidrei falschen Versionen) funktioniert es auch bei großen Größen korrekt.Probieren Sie es online aus!
quelle
JS (ES6), 375 Byte
Ungolfed:
quelle
Python 2 ,
234216210 BytesProbieren Sie es online aus!
Sicher, es kann viel mehr Golf gespielt werden, aber es ist ein Anfang.210 wird für mich vorerst tun.quelle
PHP, 420 Bytes
Klingt so, als wäre jemand gefeuert - versuchen Sie vielleicht, Ihren Chef davon zu überzeugen, dass es im Backend viel cooler ist.
Die Eingabe ist an die URL-Zeichenfolge angehängt:
?a=[width]&b=[height]&c=[depth]
- Sie können sie online auf meinem billigen Host ausprobieren. In diesen Situationen liebe ich es wirklich, GET-Anfragen zu verwenden.Ungolfed für Transparenz:
quelle
JavaScript (ES6), 204 Byte
Wobei
\n
das wörtliche Zeilenumbruchzeichen steht.Anstatt mit sich wiederholenden Zeichen herumzuspielen, wird lediglich ein Array mit geeigneter Größe erstellt und berechnet, welches Zeichen in jeder Zelle angezeigt wird.
quelle