Herausforderung
Bei einer Eingabe n
drucken Sie einen ASCII- n
Kunstkuchen, der von der Seite betrachtet hoch ist und zwei Kerzen darauf enthält. Einzelheiten finden Sie in den folgenden Beispielen.
Ausgabe
>> cake(1)
_|_|_
| |
+-----+
>> cake(3)
_|_|_
| |
+---------+
| |
+-------------+
| |
+-------------+
...und so weiter.
Regeln
- Standardlücken verboten
- Bitte versuchen Sie eine clevere Lösung
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes. Die Antwort wird jedoch nicht ausgewählt.
Habe Spaß!
code-golf
ascii-art
kolmogorov-complexity
dkudriavtsev
quelle
quelle
i=int(input())
int(input())
zuinput()
und derprint
Anweisung zu wechseln. Außerdem können Sie die vier Leerzeichen in eins ändern. . Außerdem ist Ihr bytecount 4 aus irgendeinem Grund zu hoch.Ruby,
109107 Bytesquelle
Batch, 233 Bytes
Kürzer als Python? Irgendwas muss falsch sein ...
quelle
JavaScript (ES6), 134 Byte
Ein rekursiver Kuchen.
Demo
quelle
Haskell, 103 Bytes
Definiert eine Funktion,
g
die eine Liste von Zeichenfolgen zurückgibt, die die Zeilen der Ausgabe enthaltenquelle
05AB1E,
115, 101 ZeichenDank Adnan 14 Zeichen gespart!
Auf jeden Fall etwas Platz zum Golfen hier.
Probieren Sie es online!
Beachten Sie, dass dies alles um ein Leerzeichen versetzt druckt.
quelle
×
Befehl ist. Dies ist ein Beispiel für die Verwendung.Python 2, 122 Bytes
quelle
Python 3, 162 Zeichen
Es ist nicht sehr klug, aber ich habe noch nie eines davon gemacht. (Bearbeiten: unnötige Klammern entfernt; um ein weiteres Zeichen reduziert)
quelle
Pyth, 73 Bytes
Ein Programm, das eine Ganzzahl in STDIN eingibt und das Ergebnis ausgibt.
Hier gibt es wahrscheinlich noch einiges zu golfen.
Probieren Sie es online aus
Erklärung kommt später
quelle
JavaScript (ES6), 171 Byte
Erster Durchgang, wahrscheinlich nicht optimal ...
quelle
PHP,
150147138136130140 Bytesneuer Ansatz:
alte Version als Referenz:
quelle
$argv
. : - /Vimscript,
116115 BytesZiemlich chaotisch, aber es funktioniert!
Um es zu nennen:
call A(3)
in einem leeren Puffer. Um die Funktion zu laden,source cake.vim
Erläuterung
2i+<Esc>5i-<Esc>
schreibt die erste Zeile+-----+
o||<Esc>5i<Space><Esc>
fügt hinzu| |
in der zweiten Zeile hinzuVkyjply4lpjy4hp
wird im Makro gespeichert@z
- es wählt beide Linien visuell aus, zieht sie an, fügt sie darunter ein und fügt ihnen 4 Bindestriche und Leerzeichen hinzu.#@z
wiederholt dies#
malddl4x
löscht die letzten Zeilen und entfernt sie für Striche am Boden des Kuchens, damit sie mit der Oberseite der unteren Ebene übereinstimmenggd$i_|_|_
ersetzt die erste Zeile durch die Oberseite des Kuchens%ce
zentriert dann den ganzen Kuchen auf die Breite der untersten Schicht! !quelle
SOGL V0.12 ,
2726 BytesProbieren Sie es hier aus!
Erläuterung:
quelle
Excel VBA,
139130127 BytesAnonymes VBE-Direktfenster, das Eingaben von der Zelle entgegennimmt
A1
und einen Kuchen an das VBE-Direktfenster ausgibtquelle
CJam, 79 Bytes
Probieren Sie es online aus
quelle
QBasic, 115 Bytes
Ungolfed
Drucke die oberste Zeile mit den Kerzen aus. Drucken Sie dann den Rest des Kuchens zwei Zeilen auf einmal.
SPC
Gibt bei Verwendung in einerPRINT
Anweisung die angegebene Anzahl von Leerzeichen aus. Wenn ein negatives Argument angegeben wird, wird es günstigerweise als 0 behandelt, sodass die Tatsache, dieindent - 2
sich-2
in der letzten Iteration befindet, kein Problem darstellt.STRING$
Nimmt eine Zählung und einen Zeichencode (hier 45 für-
) und wiederholt das Zeichen so oft. In diesem Fall muss die letzte Zeile (wanni=n
) um 4 Bindestriche kürzer sein als sonst.quelle
C (GCC) ,
158153 Bytes-5 Bytes dank Ceilingcat.
Probieren Sie es online!
quelle