Es gibt ein satirisches Lied namens Little Boxes , ursprünglich von Malvina Reynolds, über die Ausbreitung der Vorstädte, das die folgenden Texte enthält:
Kleine Kisten am Hang,
Kleine Kisten aus ticky-tacky,
Kleine Kisten am Hang,
Kleine Kisten trotzdem .
Es gibt eine grüne und eine rosa
und eine blaue und eine gelbe,
und sie sind alle aus ticky-tacky
und sie sehen alle gleich aus.
Ihre Aufgabe hier ist es, bei einer Ganzzahleingabe n>1
, die die Größe des Hauses darstellt, die vier "Kästchen" in den folgenden Farben (in der Notation 0xRRGGBB) auszugeben:
Green -- 0x00FF00
Pink --- 0xFF00FF (technically magenta)
Blue --- 0x0000FF
Yellow - 0xFFFF00
Wenn Ihre Konsole nicht genau diese Farben aufweist, können Sie die nächstmöglichen verwenden (z. B. ANSI-Escape-Codes).
Die Häuser sind so konstruiert, dass n
_
sie den Boden und die Dachlinie darstellen. Sie sind von n/2
(aufgerundeten) |
Zeichen umgeben, die die Wände darstellen. Die Dächer sind immer 2
hoch und sind zwei /
am linken Rand, zwei \
am rechten Rand und n-2
-
repräsentieren die Dachspitze. Je größer die Häuser werden, desto kleiner wird das Dach. das ist beabsichtigt.
Hier ist ein Haus der Größe 2
:
/\
/__\
|__|
Hier ist Größe 3
:
/-\
/___\
| |
|___|
Hier ist Größe 7
:
/-----\
/_______\
| |
| |
| |
|_______|
Bei einer Eingabe von also 7
vier Häusern der 7
oben beschriebenen Größe , wobei das erste in Grün, das zweite in Rosa (Magenta), das dritte in Blau und das vierte in Gelb ist. Die Ausgabe der Farben in dieser Reihenfolge ist wichtig.
Beispielbild der Größe 3
:
Regeln
- Die Häuser können horizontal oder vertikal sein, solange eine klare Trennung zwischen ihnen besteht.
- Führende / nachfolgende Zeilenumbrüche oder andere Leerzeichen sind optional, sofern die Häuser entsprechend ausgerichtet sind.
- Es ist entweder ein vollständiges Programm oder eine Funktion zulässig. Bei einer Funktion können Sie die Ausgabe zurückgeben, anstatt sie zu drucken.
- Die Ausgabe kann auf der Konsole erfolgen, als Bild usw. gespeichert werden.
- Standardlücken sind verboten.
- Dies ist Codegolf, daher gelten alle üblichen Golfregeln, und der kürzeste Code (in Byte) gewinnt.
quelle
90
und2,5,4,3
zusammenfassend ist das effektiv Verkettung.JavaScript (ES6), Chrome / Firefox,
156148151150 Byte8 Byte dank @Shaggy
gespeichert 1 Byte dank @Neil gespeichert
Demo
Stellen Sie sicher, dass Sie die Konsole Ihres Browsers öffnen, um die farbige Ausgabe zu erhalten.
Code-Snippet anzeigen
quelle
0
notwendig?#RGB
CSS-Farbcodes.Excel VBA, 243 Bytes
Anonyme VBE-Direktfensterfunktion, die Eingaben von annimmt
A1
und Ausgaben in den Bereich nimmtA2:A5
Ausgabe
quelle
Japt ,
7976747372 BytesVersuch es (Öffnen Sie die Konsole Ihres Browsers, bevor Sie auf "Ausführen" klicken).
Dank an die ETH, die mir geholfen hat, diese letzte Nacht zu testen, während ich an meinem Telefon gearbeitet habe.
Erläuterung
Implizite Eingabe einer Ganzzahl
U
Zuerst erstellen wir ein Array von 3-stelligen Hex-Farben, über die eine Zuordnung erfolgen soll. Der Zeichencode von
²
ist 178, also erhalten3#²
wir 3178. Wir konvertieren das in eine Base-2-Zeichenfolge mit¤
und ersetzen dann alle Vorkommen von1
mitf
.ò3
Teilt die Zeichenfolge in ein Array von Zeichenfolgen der Länge 3 undw
kehrt dieses Array um.(Ich muss irgendwie einen Weg finden, das zu verkürzen.)
Wir ordnen das Array
£
mitX
dem aktuellen Element zu undOl
protokollieren es in der Konsole. Wir werden 2 Zeichenketten übergeben, eine mit dem Haus und eine mit dem CSS.Die zweite Zeichenfolge wird erstellt, indem die komprimierte Zeichenfolge
i
vorangestellt wird .X
color:#
Das
%c
weist die Konsole an, den zweiten String als CSS zu verwenden. Die oberste Zeile des Hauses wird durch Wiederholen (ç
) der-
ZeichenzeitenU
und anschließendes Schneiden des zweiten Elements (0-indiziert) mit erstellt¤
. Die geschweiften Klammern fungieren als Abkürzung für die Verkettung von Zeichenfolgen.Die zweite Zeile wird auf ähnliche Art und Weise, dieses Mal Wiederholen der eingebauten Zeichenzeiten.
_
U
Der Körper des Hauses wird aufgebaut, indem zuerst das
|
Zeichen zweimal mit²
und dann ein Leerzeichen wiederholtU
in diese Zeichenfolge bei Index 1 eingefügt wird. Die resultierende Zeichenfolge wird dann einer Newline (R
) vorangestellt und diese Zeichenfolge wird mehrmals wiederholtU/2-0.5
.Schließlich wird die letzte Zeile genauso wie die zweite aufgebaut.
quelle
Python 2 , 120 Bytes
Probieren Sie es online! (zeigt Escape-Zeichen anstelle der tatsächlichen Farben, getestet am lokalen Terminal)
quelle
n=2
.use the closest available
, obwohl Sie scheinen, die normalen Farben anstelle der hellen Farben zu verwenden. Die hellen Farben - denke ich - wären jedoch näher an den gewünschten Farben.Yabasic , 220 Bytes
Eine anonyme Funktion, die Eingaben als Ganzzahl annimmt
n
und 4 farbige Häuser an das Terminal ausgibt.Das Fehlen einer speziellen Funktion zum Wiederholen oder Ersetzen von Zeichenfolgen in Yabsic schadet dieser Reaktion.
Diese Version erfordert Grafikmodus und funktioniert daher nicht mit TIO.
Ausgabe
Der Eingabewert für das Folgende ist
n=7
.quelle
SmileBASIC, 115 Bytes
Ein weiterer, der auch 115 Bytes ist:
Die Farbcodes, die ich benötige (in 4-Bit-RGBI), sind 5, 11, 9, 7. Dies wird erzeugt mit
!!J*8-J*2+5
Wenn J nicht 0 ist, ist dies13-J*2
(ergibt 11,9,7), und wenn dies der Fall ist, ist das Ergebnis nur 5.quelle