Drucken Sie einen Hochhaus mit dem kürzestmöglichen Code.
Eingang:
Die Eingabe definiert, wie viele Stockwerke der Hochhaus hat. Eine Etage enthält ein Fenster zu beiden Seiten der Tür. Das Fenster besteht aus 3x3 Hashes.
Ein Beispiel eines 4-stöckigen Hochhauses ist unten:
=====================
)V V V V V V V V V V(
)V V V V V V V V V V V(
)V V V V V V V V V V V V(
)V V V V V V V V V V V V V(
~~~~~~~~~~~~~~~~~~~~~~~~~~~
: : : : : : : : : : : : : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : : : : : : : : : : : : :
: : : : : : : : : : : : : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : : : : : : : : : : : : :
: : : : : : : : : : : : : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : : : : : : : : : : : : :
: : : : : _______ : : : : :
: : ### : I I : ### : :
: : ### : I I : ### : :
: : ### : I I : ### : :
: : : : : I I : : : : :
Aktualisieren:
Die Eingabe muss eins oder größer sein.
Nachgestellte Leerzeichen am Zeilenende sind zulässig.
In meinem Beispiel hat jede Zeile drei führende Leerzeichen. Dies ist nicht zwingend erforderlich, nur der Hochhausblock mit dem Eingang ist.
Antworten:
V , 72 Bytes
Probieren Sie es online!
Hier ist ein Hexdump, da dieser nicht druckbare Zeichen enthält:
Ich bin auf einen seltsamen Käfer gestoßen. Der Abschnitt in der Mitte:
dGÀpG
hätte sein sollen:,ÀäGG
aber dies funktioniert nicht für Eingaben von 1, und ich habe keine Ahnung warum.¯\_(ツ)_/¯
quelle
Mathematica,
301288258 BytesReine Funktion, die eine positive ganze Zahl annimmt und einen String ausgibt. Die Ausgabezeichenfolge sieht nicht richtig aus, da Mathematica anscheinend keine Monospace-Schriftarten als Monospace anzeigt:
Aus Gründen, die ich nicht ganz verstehe, formatiert es als Monospace, wenn Sie
Print
die Zeichenfolge:Bearbeiten: Mehrere Bytes durch Nichteinschließen
" "
am Anfang jeder Zeile gespeichert . Die Definition von wurde geänderts
, um den Fall zu behandeln, in dem es nur eine Etage gibt (StringRepeat
nicht gerne die Wiederholung einer Zeichenfolge0
).Edit 2: Dank LegionMammal978 und die Tatsache , dass
StringJoin
istListable
, das ist jetzt ein unverständlicher Alptraum von verschachtelten Listen und auch 30 Bytes kürzer.quelle
a<>b<>...<>x
durcha<>{b,...,x}
in bestimmten Teilen gespeichert werden .Python 2 ,
275270262246240236 BytesEin Paar mit einem Hinweis von @ Flp.Tkc und durch Ändern der ersten for-Schleife gespeichert.
16 mit mehr Hilfe von @ Flp.Tkc gespeichert
Probieren Sie es online!
Erstellt einfach jede Zeile des Turms als Zeichenfolge und fügt sie einem Array hinzu. Das Array wird am Ende gedruckt. Wenn jemand eine vollständige Erklärung will, gebe ich widerwillig Bescheid, wenn ich mich erinnern kann, wie es funktioniert ☺
quelle
PowerShell , 193 Byte
Probieren Sie es online!
(Ich habe das Gefühl, dass es hier oder da noch ein paar Bytes gibt. Sub-190 scheint machbar zu sein.)
Die ersten drei Zeilen bilden zusammen mit einer Schleife das Dach, wobei die Zeichenfolge multipliziert und verkettet wird,
3..0|%{...}
um die richtige Anzahl und Steigung zu erhaltenV
s zu erhalten.Die nächste Zeile verläuft von der vorab dekrementierten Eingabe
--$args[0]
bis zur0
Schleife (mit der Vorab-Dekrementierung können wir indizieren,!$_
anstatt$_-eq1
später mehrere Bytes zu speichern). Bei jeder Schleifeniteration konstruieren wir eine Reihe von Zeichenfolgen, setzen Variablen$b
und$a
auf dem Weg dorthin. Wir verwenden auch Pseudoternäre(... , ...)[...]
, um die entsprechenden Zeichenfolgen für die Mitte auszuwählen, damit die Tür im ersten Stock korrekt geöffnet wird .Jede der Zeichenfolgen wird einzeln in der Pipeline belassen, und die Standardeinstellung
Write-Output
fügt Zeilenumbrüche dazwischen ein, sodass wir diese kostenlos erhalten.quelle
T-SQL,
378372353331325 BytesGolf gespielt:
Ungolfed:
Versuch es
quelle
C
409,406,402 BytesRufen Sie an mit:
quelle
Batch, 373 Bytes
Bildet den Grat und die Rinne, indem bemerkt wird, dass es sich um ein Vielfaches von 3 handelt, wodurch einige Bytes verloren gehen. Baut das Dach, indem bemerkt wird, dass das Suffix für jede Zeile gleich ist (und wiederum eine dreifache Wiederholung enthält). Bauen Sie die Wände, indem Sie mit der interessantesten Wandlinie, dem Fenster im Erdgeschoss, beginnen und Details entfernen, um die anderen Teile der Wand zu generieren.
quelle
Javascript, 335 Bytes
Erzeugt eine Funktion
y()
mit Argumentz
, so dassy(z)
die gewünschte Ausgabe erzeugt wird.Beispiel Verwendung:
Ich wechsele von normalem JavaScript zu Code-Golf JS. Alle Tipps wäre sehr dankbar.
quelle
Canvas ,
6261 BytesProbieren Sie es hier aus! Eingabe 0 funktioniert wie erwartet, obwohl dies nicht erforderlich ist.
quelle