Neulich bat mich mein Sohn, ihm eine Treppe aus Legoblöcken zu bauen. Und mir ist so etwas eingefallen:
Dann bat mich mein Kind um ein Programm mit der geringsten Anzahl von Bytes, die eine ähnliche Treppe auf einem Computerbildschirm erzeugten. Ich bin nicht so gut im Code-Golf , also brauche ich deine Hilfe. Ich brauche ein Programm, das:
- Erhält eine positive Ganzzahl mit der Anzahl der Stufen, die die Treppe haben muss.
- Gibt eine Zeichnung einer Treppe mit dem Muster aus, das Sie im Bild sehen.
Die Ausgabe erfolgt im Textformat, die Bausteine können jedoch voneinander unterschieden werden. Sie können beispielsweise das Zeichen '█' als halben Block verwenden und in einer beliebigen Farbe malen oder einfach ein beliebiges Zeichen Ihrer Wahl auswählen.
Beschränkungen:
- Blöcke müssen drei verschiedene Farben haben, die so lange wie möglich verwendet werden (bei Eingabe von 1 oder 2 sind nicht genügend Blöcke vorhanden, um alle drei Farben zu verwenden). Wenn Sie möchten, können Sie zum Beispiel die Zeichen "░" verwenden oder einfach drei verschiedene Zeichen auswählen.
- Es dürfen keine zwei Blöcke der gleichen Farbe oder des gleichen Musters in einer einzigen Reihe nebeneinander liegen.
Mein Sohn kümmert sich nicht wirklich um Leerzeichen oder neue Linien, solange eine Treppe gezogen wird.
Beispiele (Entschuldigung für die schlechte Zeichenauswahl):
Input: 1
Output:
██
Input: 2
Output:
██
▓▓
Input: 3
Output:
██
▓▓
██░░
Input: 5
Output:
██
██
██░░
██░░
██░░▓▓
Antworten:
Jelly ,
21 1916 BytesEin volles Programm druckt das Ergebnis aus.
Verwendet
00
,11
und22
als Blöcke.Probieren Sie es online!
Wie?
quelle
Python 2 , 55 Bytes
Probieren Sie es online!
Wechselt zwischen Blöcken von
22, 44
bis auf die oberste Zeile00
. Beispiel: Bei Eingabe 10 wird gedrucktDruckt Zeilen mit zunehmender Länge,
i=2,3,..
indem ein Leerzeichen für ungerade Längen erstellt, die Musterzeiten wiederholti
und die Länge angepasst wirdi
. Das Muster gilt2244
für alle Zeilen mit Ausnahme der ersten,i=2
für die es gilt0
. Dies wird mit dem arithmetischen Ausdruck erreicht2%i*1122
.quelle
JavaScript (ES6), 80 Byte
Code-Snippet anzeigen
JavaScript (ES6), 87 Byte
Vorherige Lösung.
quelle
SOGL ,
31282725 BytesErläuterung:
mit dieser Technik
Beispielausgabe für 9:
Nicht konkurrierend, 22 Bytes
Der Befehl
m
wurde beim 1. SOGL-Commit dokumentiert , nur nicht implementiert.quelle
05AB1E ,
2221201817 BytesNutzt die interessante Tatsache, dass
4^(N+2)/5 = [3,12,51,204,...] = b[11,1100,110011,11001100,...]
Probieren Sie es online!
Erläuterung
quelle
PHP,
6159Funktioniert ähnlich wie die Python-Versionen, verwendet jedoch nach Möglichkeit alle drei Farben. Keine nachgestellte neue Zeile.
quelle
aa<?for...
.Pyth , 29 Bytes
Online testen!
Erklärungen
Ich bin mir sicher, dass es viele Möglichkeiten gibt, diesen Code zu verkürzen, aber ich bin im Moment ein König der Müdigkeit ... Werde es später versuchen.
quelle
Batch, 125 Bytes
Hinweis: Speichern Sie dies in CP437 oder CP850 oder einem anderen. Arbeitet, indem die Farben jedes Mal gedreht werden. Da ich die Zeichenfolge nicht zuordnen kann, um die Drehung durchzuführen, verwende ich vier Ersetzungen, wobei Leerzeichen als temporäre Bühne verwendet werden. Dadurch kann ich dann auch jeder Zeile ein Leerzeichen voranstellen, sodass aus zwei Leerzeichen ein neuer Block wird. Beispielausgabe:
quelle