Hinweis für Mods, wenn der Titel nicht stimmt, ändere ihn auf was auch immer, ich fand es lustig.
Du hast die Aufgabe, die Lichter für diese Weihnachtszeit aufzuhängen, und deine Familie hat beschlossen, dass du mindestens zwei Weihnachtslichter an deinem Haus aufhängen musst, damit es ein frohes Weihnachtsfest wird. Ihre Herausforderung besteht also darin, bei einer bestimmten Anzahl 1 < n
die entsprechende Anzahl von Weihnachtslichtern auszugeben, die Sie gemäß den folgenden Spezifikationen aufhängen werden ...
Hier ist die Struktur eines grundlegenden Weihnachtslichts:
_?_
[___]
/:' \
|:: |
\::. /
\::./
'='
Der einzige ungewisse Teil ist das Fragezeichen. Je nachdem, wo das Licht in der Kette landet, unterscheidet sich die Verbindung erheblich.
Für das erste Licht in der Kette müssen Sie Folgendes ausgeben:
.--._
_(_
[___]
/:' \
|:: |
\::. /
\::./
'='
Für das letzte Licht in der Kette müssen Sie Folgendes ausgeben:
_.--.
_)_
[___]
/:' \
|:: |
\::. /
\::./
'='
Und für alle Lichter in der Mitte:
_.--.--._
_Y_
[___]
/:' \
|:: |
\::. /
\::./
'='
Beispiel:
N = 2 :
.--.__.--.
_(_ _)_
[___] [___]
/:' \ /:' \
|:: | |:: |
\::. / \::. /
\::./ \::./
'=' '='
N = 6 :
.--.__.--.--.__.--.--.__.--.--.__.--.--.__.--.
_(_ _Y_ _Y_ _Y_ _Y_ _)_
[___] [___] [___] [___] [___] [___]
/:' \ /:' \ /:' \ /:' \ /:' \ /:' \
|:: | |:: | |:: | |:: | |:: | |:: |
\::. / \::. / \::. / \::. / \::. / \::. /
\::./ \::./ \::./ \::./ \::./ \::./
'=' '=' '=' '=' '=' '='
Kredit
ASCII-Art wurde entnommen aus: http://www.chris.com/ascii/index.php?art=holiday/christmas/other
Es wurde von einem Benutzer namens "jgs" entwickelt, der für rund 40% des Inhalts dieser Website verantwortlich ist.
Regeln
- Nachgestellte Leerzeichen sind in Ordnung, genau wie eine nachgestellte Newline.
- Zwischen der ersten und der letzten Glühlampe des Restes der Kette ist 1 Platz mehr.
- Sie können nur 1 Ganzzahl als Eingabe verwenden, und die Ausgabe MUSS eine Zeichenfolge sein, keine Arrays.
- Ihr Programm verfügt möglicherweise über undefinierte Funktionen für Werte unter 2.
Dies ist Ascii-Art- Code-Golf , die niedrigste Anzahl an Bytes gewinnt.
Antworten:
SOGL V0.12 ,
73717066 BytesProbieren Sie es hier aus!
-4 Bytes durch Schleifen über einen String
(YYY)
wie die Charcoal-Antwort63 Bytes würden funktionieren, wenn 2 nicht behandelt werden müssten: /
quelle
save SOGL codepage encoded file
Schaltfläche klicken , erhalten Sie eine 70-Byte-Datei, die Sie auch dort laden können (auch wenn die Schaltfläche zum Durchsuchen nicht intuitiv erreichbar ist und das behebt). SOGL verwendet dazu eine benutzerdefinierte Codepage. (Die Codepage ist im Header der AntwortPython 3,
200195191190186 Bytes-1 Byte von dylnan
-4 Byte von Rod
Übernimmt die Eingabe für stdin.
Probieren Sie es online!
Erläuterung:
Zusätzliche festliche Version!
quelle
for s in l:print(s,s*x,s)
ein Byte zu speichern.Pyth ,
113107 BytesProbieren Sie es online!
Nicht gerade die golferischste Version ...
quelle
JavaScript (ES6), 180 Byte
Prüfung
quelle
JavaScript (ES6),
204201196194192 BytesCode-Snippet anzeigen
quelle
.--._${(r=x=>x.repeat(N-2))(`_.--.--._`)}_.--.
durch${(r=x=>x.repeat(N-1))(`.--.__.--`)}.
N
nach dem ersten Anruf zu dekrementierenr
, aber das klappt prima .Kohle ,
7874 BytesProbieren Sie es online! Link ist eine ausführliche Version des Codes. Bearbeiten: 2 Bytes gespart, indem die Art und Weise, wie die Verkabelung gedruckt wird, vereinfacht wird. 2 Byte gespart, da der neue Code die Eingabe automatisch in eine Ganzzahl umwandelt. Erläuterung:
Drucken Sie die Verkabelung aus, indem Sie die Schnur nehmen
.--.__
, sie auf Länge 9 formen und sie dann für jede Verbindung einmal wiederholen und mit einem Finale abschließen,.
bevor Sie zum Beginn der nächsten Zeile für die Lampen übergehen.Schleife über eine Reihe von Anschlüssen:
(
und)
an den Enden undY
s in der Mitte.Bewegen Sie sich ein Zeichen nach rechts, wenn dies die letzte Glühbirne ist.
Drucken Sie den Körper der Glühbirne, ohne den Cursor zu bewegen.
Bedrucken Sie den Sockel der Glühbirne mit dem Stecker.
Gehen Sie zum Anfang der nächsten Glühbirne (ein zusätzliches Zeichen, wenn dies die erste Glühbirne ist).
quelle
Excel VBA,
224207205 BytesAnonyme VBE-Direktfensterfunktion, die Eingaben aus dem Bereich
[A1]
und Ausgaben in das VBE-Direktfenster übernimmt .Druckt die Lampen zeilenweise von links oben nach rechts unten
Beispiel-E / A
-17 Bytes dank @ YowE3k
-2 Bytes für das Hinzufügen einer temporären Variablen
b
quelle
: [Rept(B1,A1-2)]
kurz vor dem Start der Schleife wird nicht verwendet.C
279278272262259 BytesVielen Dank an @NieDzejkob für das Speichern von sechs Bytes!
Probieren Sie es online!
Abgerollt:
quelle
PHP,
276,307,303,301,293,283,280, 278 BytesLesbare Version zum Testen:
Überprüfen Sie die verkleinerte Version hier
Überprüfen Sie die lesbare Version hier
AKTUALISIEREN
Hüllte es in eine Funktion,
quelle
\
das Zeichen vor der Trennziffer entfernen müssen, um nur 1 Zeichen zu sparen. Sie können , indem den Leerzeichen Teil der gleichen größeren Zeichenfolge, mit dem Ausdruck in der Mitte als Erweiterung noch 2 Zeichen sparen:$a[]=$r($b)." {$r($b,$n)} ".$r($b);
.9
als Trennzeichen benutze , wird kein Escapezeichen benötigt, wahrscheinlich funktioniert das mit anderen Nummern einfach nicht0
$r()
Lambda-Funktion als regulär definierenfunction r()
könnten (könnte sich an derselben Stelle befinden, Funktion in Funktion ist möglich). Sie müssen das String-Parsing korrigieren:" {r("")} "
funktioniert nicht. Weitere -7 Bytes;)Java,
310307300275 BytesVielen Dank an DevelopingDeveloper für die Konvertierung in einen Lambda-Ausdruck
Erweitert:
Wir haben nach kürzeren Wegen gesucht, um Zeichenfolgen zu multiplizieren, und festgestellt, dass Streams überraschend ausführlicher sind
Probieren Sie es online!
quelle
String o="";
+o+=" .";
=String o=" .";
j=#
aus den for-Loops heraus zuSauber ,
305292288275 BytesProbieren Sie es online!
quelle
Python 2 (PyPy) ,
365316315251245 Bytes-21 dank FlipTack
-43 dank ovs
-6 danke an Mr. Xcoder
Probieren Sie es online!
quelle
Kotlin , 261 Bytes
Verschönert
Prüfung
TIO
TryItOnline
quelle
Google Sheets, 190 Bytes
Anonyme Arbeitsblattfunktion, die Eingaben aus dem Bereich
A1
und Ausgaben in die aufrufende Zelle übernimmtquelle