Trump braucht die Mauer und du wirst es tun! Um seine Mauer möglichst effizient zu bauen, habe ich ein einfaches, wiederholbares Muster erstellt, das Sie verwenden können:
__ __
| |_| |
___| |___
- - - -
- - - - - - -
- - - - - - - -
———————————————
Trump wird Ihnen sagen, wie viele Wandsegmente er benötigt, und Sie werden sie so bauen, dass sie genau so aussehen.
Hier ist das Muster:
__ __ <-- 4-2-3-2-4 ' _ _ '
| |_| | <-- 3-1-2-1-1-1-2-1-3 ' | |_| | '
___| |___ <-- 3-1-7-1-3 '_| |_'
- - - - <-- 1-3-1-3-1-3-1-1 '- - - - '
- - - - - - - <-- 1-1-...-1-1 ' - -...- - '
- - - - - - - - <-- 1-1-...-1-1 '- - ... - -'
——————————————— <-- 15 Unicode U+2014
Die Eingabe ist immer eine Ganzzahl> 0.
Testfälle:
1
__ __
| |_| |
___| |___
- - - -
- - - - - - -
- - - - - - - -
———————————————
2
__ __ __ __
| |_| | | |_| |
___| |______| |___
- - - - - - - -
- - - - - - - - - - - - - -
- - - - - - - -- - - - - - - -
——————————————————————————————
5
__ __ __ __ __ __ __ __ __ __
| |_| | | |_| | | |_| | | |_| | | |_| |
___| |______| |______| |______| |______| |___
- - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - -- - - - - - - -- - - - - - - -- - - - - - - -- - - - - - - -
———————————————————————————————————————————————————————————————————————————
Da Sie dies schnell erledigen müssen, schreiben Sie das kürzestmögliche Programm!
Wenn es hilft, habe ich zuerst die Challenge geschrieben, zuletzt den Titel;)
JavaScript (ES6),
116115 BytesDank @Neil ein Byte gespeichert !
Erläuterung
Ziemlich genau wie @ Mauris 'CJam-Methode , jedoch ohne die Zeichenzuordnung .
Die Wandteile haben das Format:
Denn wenn Sie jede Zeile 15 Mal wiederholen, erhalten Sie:
und nachdem Sie nur die letzten 15 Zeichen geschnitten haben, erhalten Sie:
Ungolfed
Prüfung
Code-Snippet anzeigen
quelle
.slice(-15)
stattdessen verwenden?__ __ n| |_| | n| |___n - n- n -n—
Jolf , 135 Bytes
Es kann viel Golf gespielt werden.Deaktivieren Sie Pretty Print und löschen Sie die Ausgabe, um ein besseres Ergebnis zu erzielen. Probieren Sie es hier aus! . Verwenden Sie dies auch , um eine beliebige Zahl einfacher zu testen.Ich werde später eine Erklärung hinzufügen.
quelle
Haskell,
116118108 BytesAnwendungsbeispiel:
Hierbei wird die gleiche Strategie wie bei den anderen Antworten angewendet: Jede Zeile der Wand ist ein Zyklus des Musters, z. B. "-" (Bindestrich + Leerzeichen) für die vorletzte Zeile. Wiederholen Sie jedes Muster, nehmen Sie 15 Zeichen, um ein Wandsegment zu erhalten, wiederholen Sie es erneut und nehmen Sie
15*n
Zeichen fürn
Segmente.Edit: @ Mauris gefunden 10 Bytes. Vielen Dank!
quelle
Bash + Linux-Dienstprogramme (
247186180 Byte)Da bei der Erstellung des obigen Skripts großzügig nicht druckbare Zeichen verwendet wurden, ist hier ein Hexdump:
quelle
PowerShell,
103100 Zeichen (105 Byte auf der Festplatte, 102 ohne Stückliste)Ziemlich genau wie @ user81655-Methode .
Ungolfed-Version
Anwendungsbeispiel
quelle
param($c);' __ __n | |_| |n___| |n- n -n- n—'-split'n'|%{-join($_*15)[0..14]*$c}
PHP 5.4, (
182175 Zeichen)Ungolfed Version
[7 Zeichen, die durch Befolgen des Vorschlags von Blackhole gespeichert wurden. ]
Eine andere Version mit weniger Bytes, aber mehr Zeichen
PHP 5.4 (176 Zeichen, 178 Bytes)
Ersetzen Sie einfach 15 Instanzen von m-dash durch einen Gedankenstrich mit der Funktion str_repeat
quelle
$s
, sondern verwenden Sie sie direkt in Ihrer Schleife:foreach([…,…] as $d)
2) Entfernen Sie das vorhergehende Leerzeichen$d
:foreach(… as$d)
3) Verwenden Sie stattdessen eine neue Zeile"\n"
.C 148 Bytes
Die Punktzahl schließt den unnötigen Zeilenvorschub aus,
f(n)
der der Übersichtlichkeit halber eingefügt wird.Die magischen Zahlen in
p
codieren die Zeichen für die Wand in Basis 4, die aus der Zeichenfolge 0,1,2,3 rekonstruiert" -|_"
werden16843009
in hex ist0x1010101
. Dies wird für die Zeilen mit verwendet-
in ihnen verwendet.Weil von
_
codiert wird3
, kann die unterste Zeile einfach wie folgt codiert werden: Dies-1
ist die Zahl, bei der alle Bits auf gesetzt sind1
.quelle
#define q
Sie die Werte nicht verwenden und nur hartcodieren.Vitsy , 121 Bytes
Dazu greife ich nacheinander auf jede Zeile zu und erhalte Stapel mit dem Inhalt jeder Zeile. Dann gebe ich jeweils eine Zeile aus. Wenn jemand möchte, dass ich eine ausführlichere Erklärung gebe, frage ihn einfach (ich öffne gerade Geschenke, also ...).
Probieren Sie es online!
quelle
PHP5.5,
182172 Bytes168 BytesBasierend auf der Antwort von @ kuldeep.kamboj, die in dem Moment 212 Bytes beträgt, in dem ich dies schreibe, aber 182 Zeichen. Ich wünschte die Mauer wäre etwas höher, dann könnte ich noch etwas optimieren ;-)
Dieser ist 168 Bytes, danke an @ JörgHülsermann
Dieser ist 172 Bytes
Dieser ist 182 Bytes :-)
ungolfed version
quelle
$x=$r(' ',3);
kann verkürzt werden auf$x=' ';
as$z
Python 3,
132122120 BytesUngolfed:
quelle
)for s in[
...Python 2 (161 Zeichen, 191 Byte)
quelle
SOGL V0.12 , 32 Bytes
Probieren Sie es hier aus!
Erläuterung:
quelle
Vim, 90 Schlüssel
Unter der Annahme, dass sich die Eingabe in einem Puffer befindet, erledigt das Folgende die Aufgabe (Zeilenumbruch nur zur besseren Lesbarkeit)
Wo
^M
ist ein return,^[
ist escape,^K
ist ctrl+kund^V
ist ctrl+v.Dies kann sehr wahrscheinlich ein wenig herabgolfen werden, da es viel bessere Möglichkeiten zum Erzeugen des Musters gibt.
quelle
Java 11,
236235231229 BytesProbieren Sie es online aus.
HINWEIS: Java 11 ist noch nicht in TIO, wurde also
String.repeat(int)
mit emuliertrepeat(String,int)
(bei gleicher Bytezahl).Erläuterung:
quelle
PowerShell + Datei, 92 Bytes
Powershell speichern auf
get-trumpwall.ps1
(40 Bytes)Datendatei mit Namen
f
und Daten speichern enthält nur Unicode-Symbol und Linux LF (52 Bytes):Hex-Dump:
Anwendungsbeispiel
quelle