Bald hat mein Freund Geburtstag und da er Programmierer und ASCII-Kunstliebhaber ist, dachte ich, ich würde ihm ASCII-Kuchen machen!
Leider vergesse ich immer wieder sein aktuelles Alter, daher hätte ich gerne ein Programm für meinen ASCII-Ofen, das einen Kuchen mit einer bestimmten Anzahl von Kerzen backt, damit ich es nicht noch einmal selbst machen muss, wenn ich mich mit seinem irre Alter.
Da ASCII-Öfen nur über begrenzten Speicher und Speicherkapazität verfügen, sollten möglichst wenige Bytes verwendet werden .
Deine Aufgabe:
Schreiben Sie ein Programm, das eine Geburtstagstorte mit so vielen Kerzen an die Konsole ausgibt, wie die Eingabe angibt.
Kuchenanforderungen sind:
- Es muss einen Rand haben, der aus horizontalen
-
und vertikalen|
Linien und Eckpunkten besteht+
. - Mindestens 5 Zeichen breit (einschließlich Kuchenrand
|
) - Mindestens 5 Zeichen hoch (einschließlich Tortenrand
-
) Zwischen dem Rand des Kuchens und dem ersten Kerzenboden (nicht der Flamme) muss auf jeder Seite ein Leerzeichen stehen , es sei denn, in diesem Bereich befindet sich eine Flamme. Eine Flamme oder ein Kerzenboden sollte nicht in der Lage sein, die Kuchenränder zu überlappen.
- Die maximale Breite des Kuchens beträgt 9 Zeichen, daher sind maximal 5 Kerzen pro Reihe zulässig.
- Da wir nicht möchten, dass unser Kuchen zweidimensional ist, muss er zusätzliche 2 Reihen hoch sein, um ihm etwas Volumen zu verleihen. Fügen Sie am unteren Rand einen weiteren Rand hinzu und verbinden Sie die Scheitelpunkte mit den darüber liegenden, wobei Sie ebenfalls die ASCII-Zeichen von oben (
-
,|
und+
) verwenden.
Kerzenanforderungen sind:
- Besteht aus der Basis
|
und der Flamme*
, wobei die Flamme oben auf der Basis gestapelt ist. - Kerzen dürfen nicht direkt nebeneinander stehen, außer diagonal.
- Die Kerzen werden von links nach rechts und dann von oben nach unten mit maximal 5 in einer Zeile platziert.
(Hinweis: Wenn sich in der vorherigen Reihe 5 Kerzen befänden, kann die nächste Reihe möglicherweise nicht auch 5 Kerzen enthalten, da diese dann benachbart wären.)
Zusätzliche Bemerkungen:
- Die Kuchenbreite hängt von der Anzahl der Kerzen in der ersten Reihe ab, muss jedoch mindestens 5 Zeichen und höchstens 9 Zeichen breit sein.
- Die Kerzen werden beginnend in der obersten Reihe von links nach rechts gefüllt. Sobald eine Reihe voll ist, sollte die nächste in der Reihe unter der ersten beginnen.
Eingang:
Sie können eine Nummer in einem (angemessenen) Format akzeptieren, das Sie möchten.
Bei dieser Herausforderung können Sie davon ausgehen, dass die Zahl zwischen 0 und 2 31 (ohne 0) liegt, obwohl ich jemanden, der so alt ist, nicht anerkenne.
Ausgabe:
Sie können entweder eine Zeichenfolge zurückgeben oder den resultierenden Kuchen direkt in die Ausgabekonsole schreiben.
Regeln:
- Standard Lücken sind verboten.
- Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes in jeder Sprache.
Beispiele:
Eingang: 8
+-----------+
| * * * * * |
| |*|*|*| | |
| | | | |
| |
+-----------+
| |
+-----------+
Eingang: 2
+-----+
| * * |
| | | |
| |
+-----+
| |
+-----+
Eingang: 12
+-----------+
| * * * * * |
| |*|*|*|*| |
| *|*|*| | |
| | | | |
| |
+-----------+
| |
+-----------+
Viel Glück!