Baue mir eine Mauer!


73

Herausforderung

Ich brauche Hilfe beim Mauerbau! Füge Code ohne Eingabe zusammen und erzeuge die folgende Ausgabewand:

_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__

Jetzt ist diese Wand genau 10Zeichen hoch und 70Zeichen breit.

Wie oben erwähnt, keine Eingaben, nur Code. Am wenigsten Bytes müssen wir diese Mauer effizient bauen. Offensichtlich muss dieses Programm funktionieren, um die Mauer bauen zu können. oder es wird sich offensichtlich nicht selbst bauen! Viel Glück!


Gewinner

Der Gewinner geht in der Sprache zu MarinusAPL und benötigt ganze 12Bytes! https://codegolf.stackexchange.com/a/99028/61857


Vielen Dank an alle für die Teilnahme!



8
Auch im Zusammenhang. (seltsam, dass dies heute kommen sollte, haha)
Conor O'Brien

1
Das ist okay. Ich melde mich, wenn ich einen Dolmetscher habe. Ich arbeite gerade daran :)
ETHproductions


30
Lassen Sie Mexiko dafür bezahlen, um Bonuspunkte zu erhalten.
Dawood ibn Kareem

Antworten:


46

APL, 12 Bytes

10 70⍴'_|__'

Ausgabe:

      10 70⍴'_|__'
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__

1
Diese Antwort ist mir gerade aufgefallen, als ich meine Antwort abgab. Sie sind im Grunde das gleiche haha
Conor O'Brien

2
Dies gibt zusätzlich zur ASCII-Wand noch etwas anderes aus. Ist das erlaubt?
Buffer Over Read

Bei Verwendung von tryapl.org habe ich die Wandausgabe erhalten. Was hast du bei TheBitByte erhalten?
FivePixels

4
@Dylan Er ist wahrscheinlich verwirrt, da der Antwortende das Programm in die Ausgabe aufgenommen hat, ohne die REPL-Natur von APL zu kennen.
Conor O'Brien

191

Trumpscript , 303 285 244 231 226 Bytes

make i 1000005-1000000
as long as,i;:
make i,i - fact;
say "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
say "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"!
America is great

Ich möchte sagen, dass dies eine der ausführlichsten Sprachen ist, in denen fast alles nicht zu einem Arbeitsprogramm kompiliert werden kann.

Offenbar ob -Werke statt minusvollständig bis zum Dolmetscher und manchmal funktioniert. Diesmal habe ich es getan, damit ich es als Golfspieler einsetze.

Missbrauch der Tatsache, dass Trumpscript in Python geschrieben ist und daher, factwenn es als Ganzzahl verwendet wird, eins ist.

Golftipps willkommen.


48
Ich nehme an, Trumpscript erlaubt keine Zahlen unter 1.000.000? ;-)
ETHproductions

3
Du hast Recht.
Blau

2
Können Sie i is 1000005-1000000und verwenden i is i-fact? (Schauen Sie sich einfach die Readme-Datei von Trumpscript an.)
AlexRacer,

19
Ich bin überrascht, dass Sie es verwenden können 1000000. Dokumentation Staaten All numbers must be strictly greater than 1 million. The small stuff is inconsequential to us..
Mad Physicist

9
Factund lies(und andere Wahrheit / Falsch Konstanten) eine zufällige, zeitbasierte Chance des Flip - Flop (umgekehrt) während tokenization (siehe tokenizer.py, Suche flip_flop) sein kann , warum es schien nicht zu arbeiten minus, wenn es wirklich mußte es tun mit factzu diesem Zeitpunkt
pinkfloydx33

20

J, 12 Bytes

10 70$'_|__'

Formt die Zeichenfolge rechts in eine Form von 10 x 70. Einfach!


18

BBC BASIC, 28 Bytes

Tokenized Dateigröße 23 Bytes.

WIDTH70P.STRING$(175,"_|__")

WIDTH70würde normalerweise von einem Zeilenumbruch gefolgt werden. Es setzt die Feldbreite auf 70. Dann drucken wir nur 175 Kopien der Zeichenfolge, die sich umlaufen.


2
Beste (ab) Nutzung von WIDTH, die ich gesehen habe :)
ElPedro

Dieser sollte dann "23 Bytes" im Header haben.
Adám

@ Adám Nur wenn die tokenisierte Version als Antwort gepostet wird.
ErikE

17

Brainfuck, 171 Bytes

+++++[>+++++++++++++++++++<-]+++++++[>>++++++++++++++++++<<-]>>--<<++[>>>+++++<<<-]+++++[>.>.>>+++++++++++++++++[<<<...>.>>-]<.>+++++++++++++++++[<<<...>.>>-]<<<..>>.<<<-]

Brainfuck macht Spaß, hier ist meine Vorlage.

Hier ist die Ausgabe:

_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__

Hier ist ein Link, um es zu versuchen

https://repl.it/EW2Z/0


16

WinDbg, 45 Bytes

f2000000 L2bc 5f 7c 5f 5f;da/c46 2000000 L2bc

Wie es funktioniert:

f 2000000 L2bc 5f 7c 5f 5f; *Repeat the pattern _|__ (5F 7C 5F 5F) to fill 2BC (700) bytes 
                            *starting at 2000000
da /c46 2000000 L2bc        *Show 2BC (700) ASCII chars starting from 2000000 in lines 
                            *of length 0x46 (70)

Ausgabe:

0:000> f2000000 L2bc 5f 7c 5f 5f;da/c46 2000000 L2bc
Filled 0x2bc bytes
02000000  "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
02000046  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"
0200008c  "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
020000d2  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"
02000118  "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
0200015e  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"
020001a4  "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
020001ea  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"
02000230  "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
02000276  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"

10

Pyth, 12 Bytes

Code:

jcT*175"_|__

Erläuterung:

       "_|__    # For the string "_|__"
   *175         # Repeat it 175 times
 cT             # Chop into 10 equal pieces
j               # Join them by newlines

Probieren Sie es hier aus .


10

Python 2, 37 Bytes

s="_|__"*17;print(s+"_|\n__%s\n"%s)*5

Zerlegt zwei Zeilen in 17 Kopien von _|__ plus eine durch eine neue Zeile unterbrochene Kopie plus 17 weitere Kopien plus eine weitere neue Zeile.

Längere Alternativen:

print"%s_|\n__%s\n"%(2*("_|__"*17,))*5

s="_|__"*17;print"%s_|\n__%%s\n"%s%s*5

for i in[0,2]*5:print("_|__"*18)[i:i+70]

print("_|__"*17+"_|\n"+"___|"*17+"__\n")*5

for s in["_|__","___|"]*5:print(s*18)[:70]

s="_|__"*99;exec"print s[:70];s=s[2:];"*10

print("%s"*70+"\n")*10%(175*tuple("_|__"))

Ihre letzte Alternative ist kürzer als print(("%s"*70+"\n")*10%(175*(*"_|__",)))in Python 3.
mbomb007

8

05AB1E , 13 Bytes

Code:

"_|__"175×Tä»

Erläuterung:

"_|__"         # For the string "_|__"
      175×     # Repeat that 175 times
          Tä   # Split into 10 even pieces
            »  # And join them by newlines

Verwendet die CP-1252- Codierung. Probieren Sie es online!


7

PHP, 44 42 41 Zeichen

<?=chunk_split(str_pad(_,700,"|___"),70);

(Nur weil ich noch nie eine Chance chunk_split()hatte)

Dank an:

  • user59178 für den Vorschlag zur Verwendung str_pad()(-1 Zeichen)

Probelauf:

bash-4.3$ php <<< '<?=chunk_split(str_pad(_,700,"|___"),70);'
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__

Bytes, nicht die Anzahl der Zeichen.
FivePixels

2
Gleich. Ich benutze keine Multibyte-Zeichen.
Handarbeit


2
@pajonk, behoben mit PPCG - Durchgestrichen 44 User Style auf meiner Maschine: i.stack.imgur.com/czn5h.png
manatwork

Sie können ein Byte speichern, indem Sie str_padanstelle von verwenden str_repeat, da _es als Konstante mit Wert behandelt wird _.
user59178

7

Vim, 30 24 19 Tastenanschläge

18a___|<esc>YP2x}h.yk4P

Vielen Dank an DrMcMoylex und nmjcman101 für das Speichern wertvoller Tastatureingaben!


1
Schöne Antwort, willkommen auf der Seite! Einige Tipps: 1) azählt, so dass Sie 18a___|<esc>das Makro machen können, anstatt es zu machen. 2) <cr>im normalen Modus entspricht j0, so dass Sie ein Byte von Ihrem zweiten Makro abnehmen können.
DJMcMayhem

Cool, danke für die Tipps!
Karpfen

1
Ich habe Ihre Lösung ein bisschen zum Spaß gespielt. Wenn Sie die Wand vor dem Kopieren / Einfügen formatieren, werden alle Bytes gespeichert, die erforderlich sind, um kein Makro zu 18a___|<esc>YP2x}h.yk5Perstellen. Die Größe beträgt 19 Bytes.
nmjcman101

Schön, ich aktualisiere die Antwort! Ich werde einfach den vorletzten Schlüssel durch 4 ersetzen, sonst wird die Mauer zu hoch :)
karpfen

6

Perl, 47 34 29 Bytes

$_="_|__"x175;say for/.{70}/g

Sie können es bis 29:say for("_|__"x175)=~/.{70}/g
Dada

Aus irgendeinem Grund produzierte das bei jedem Versuch keine Ausgabe, aber ich fand eine andere Lösung in so vielen Bytes. Trotzdem danke!
Gabriel Benamy

Nun, der von mir vorgeschlagene Code liefert eine gültige Ausgabe ... Vielleicht haben Sie die Klammer vergessen "_|__"x175oder so?
Dada

Ich denke das ist was es ist. Ich dachte, Klammern
müssten

Huhu, schwer zu merken, dass jeder Operator =~Vorrang hat ( hat einen höheren Vorrang als x)!
Dada

5

Perl, 31 Bytes

say+($@="_|__"x17,"_|
__$@
")x5

Sie benötigen -Eflag, um es auszuführen:

perl -E 'say+($@="_|__"x17,"_|
__$@
")x5'

Dachte an einen etwas anderen Ansatz für 29 Bytes: say for("_|__"x175)=~/.{70}/g:). Ich mag den Trick, den du dort angewendet hast!
Dom Hastings

@DomHastings huhu, ich habe genau den gleichen Code in den Kommentaren von Gabriel Benamys Antwort geschrieben!
Dada

D'oh! Hab das nicht gesehen! Auch dann habe ich gesehen, dass es in vielen anderen Antworten verwendet wurde. Na ja!
Dom Hastings

@DomHastings Ja, ich habe anfangs nicht daran gedacht und es war bereits in Gabriels Antwort, deshalb habe ich meine Antwort nachher nicht aktualisiert;)
Dada

5

V , 24 , 16 Bytes

175i_|__ò70|lé

Probieren Sie es online! Dies enthält <esc>Zeichen ( 0x1B), daher hier ein Hexdump:

0000000: 3137 3569 5f7c 5f5f 1bf2 3730 7c6c e90a  175i_|__..70|l..

8 Bytes indirekt gespeichert dank Jordan!


19 Bytes: v.tryitonline.net/… Ich konnte jedoch nicht herausfinden, wie die in den V-Dokumenten erwähnte.\{-} Verknüpfung verwendet wird .
Jordanien

@ Jordan Wow, sehr schön! Die \{-}Verknüpfung würde sowieso nicht funktionieren, da Sie die Nummer im Inneren nicht ändern können. Sie können jedoch das hohe Bit auf setzen \{, um dies stattdessen zu erhalten. Fühlen Sie sich frei, dies als Antwort zu posten.
DJMcMayhem

Ah, das macht Sinn. Gepostet
Jordan

Verdammt, ich muss diese Sprache noch lernen: 25 Bytes
statox

5

V , 18 Bytes

-1 Byte dank DJMcMayhem.

175i_|__<Esc>Ó.û70}/°ò

Hier ist es mit nicht druckbaren Zeichen im xxd-Format:

0000000: 3137 3569 5f7c 5f5f 1bd3 2efb 3730 7d2f  175i_|__....70}/
0000010: b0f2                                     ..

Probieren Sie es online!


Nett, ich bin nicht mehr die einzige Person, die V benutzt hat! Jetzt muss ich sehen, ob ich die Führung zurück übernehmen kann, haha
DJMcMayhem

5

MATL, 15 Bytes

'_|__'700:)70e!

Natürlich können Sie es online ausprobieren! Erläuterung:

'_|__' % Put a brick on the stack
700    % 700 times
:)     % Makes a happy mason...
70e!   % Secret freemason code

OK, tatsächlich funktioniert es wie folgt:

'_|__' % Put the first bit of the string on the stack
700:   % Put 1, 2, ..., 700 on the stack as array
)      % Index into the string, modularly. Result: '_|___|__ ... __'
70e    % Reshape into 70 rows (and consequently, 10 columns)
!      % Transpose to get the desired output.

Gut gemacht! Und dein Smiley ist besser als meiner
Luis Mendo

@LuisMendo Die Verwendung von Smileys kann in MATL als Entwurfsmuster angesehen werden. xD Vielleicht könnten Sie :)auf C... haben, aber das wäre Ihr letzter 1-Byte-Code Punkt gegangen (oder gibt es einen anderen Grund Cwird nicht verwendet?)
Sanchises

Sie wollen den Smiley loswerden? :-P
Luis Mendo

5

Python 2, 46 44 Bytes

Verwenden Sie einfach die String-Multiplikation, um den String zu erstellen, und das Schneiden, um die richtigen Bits zu erhalten :)

k='_|__'*18
print'\n'.join([k[:70],k[2:]]*5)

danke an Antony Hatchkins für das Speichern von zwei Bytes :)


Könnten 2 Bytes weniger sein:print'\n'.join([k[:70],k[2:]]*5)
Antony Hatchkins

@AntonyHatchkins Danke!
Kade

4

PowerShell v2 +, 34 bis 30 Byte

'_|__'*175-split"(.{70})"-ne''

Ein dummer Regex-Matching-Algorithmus, der -ne''... fünf Bytes verschwendet!

'_|__'*175-split"(.{70})"-ne''
'_|__'*175                     # Repeat this string 175 times
          -split"       "      # Split on this regex pattern:
                  .{70}        # Match any character 70 times
                 (     )       # Encapsulated in parens so we keep the regex results
                         -ne'' # But don't select the empty strings
                               # Output with newlines via Write-Output is implicit

4 Bytes gespart dank Conor!


Wäre .{70}das für den Regex kürzer?
Conor O'Brien

splitfunktioniert so in anderen Sprachen - Sie erhalten immer die unvergleichlichen Teile, ob Sie sie wollen oder nicht. Einige Sprachen haben einen matchOperator, mit dem nur übereinstimmende Ergebnisse zurückgegeben werden können, aber ich sehe keine PowerShell-Entsprechung dafür.
Neil

@Neil Performing 'abc'-split'(.)'kehrt zurück ('','a','','b','','c',''). Es gibt nichts Unübertroffenes, aber aufgrund der Verarbeitung des Algorithmus durch die Eingabezeichenfolge werden leere Zeichenfolgen zurückgegeben. Sehen Sie hier .
AdmBorkBork

Ja, und ich sage, Sie sollten von diesem Ergebnis nicht überrascht sein, denn genau das soll split tun.
Neil

@ Neil überrascht? Nein nicht wirklich. Das heißt aber nicht, dass ich mich darüber freuen muss. : D
AdmBorkBork

4

C, 131 115 113 103 97 95 Bytes

i,j;main(){for(;i<10;puts(i++&1?"|__":"|"))for(j=0;j<18-(i&1);printf(&"|___"[j++?0:i&1?1:3]));}

Zeit zum Golfen ...

_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__

3

Jelly , 14 Bytes

“_|__”ṁ700s70Y

TryItOnline!

Wie?

“_|__”ṁ700s70Y - Main link: no arguments
“_|__”         - literal ['_','|','_','_']
      ṁ700     - mould like something 700 long
          s70  - split into chunks of length 70
             Y - join with line feeds

1
Per Definition kann Jelly nicht länger als J.
Adám

Ich habe etwas Ähnliches ohne das Eigentümliche gemacht : “_|__”ẋ175œs⁵Y(14 Bytes)
Erik der Outgolfer

3

MATL , 16 Bytes

'___|'10:E!70:+)

Probieren Sie es online!

'___|'   % Push this string
10:E!    % Push [2; 4; 6; ...; 20] (10×1 column vector)
70:      % Push [1, 2, 3, ..., 70] (1×70 row vector)
+        % Add. Gives a 10×70 matrix of all pairwise additions
)        % Index (modular, 1-based) into the string



3

Javascript REPL, 45 Bytes

"_|__".repeat(175).match(/.{70}/g).join("\n")

1
Willkommen bei PPCG! Dies sollte als "JavaScript REPL" oder ähnlich markiert sein, da dies außerhalb einer interaktiven Konsolenumgebung überhaupt nichts druckt.
Martin Ender

1
Sind das nicht 45 Bytes?
Acrolith

@daHugLenny Sie haben Recht, ich habe \ n als ein einzelnes Byte gezählt
Juan Tonina

Wo ist das console.log?
Cardeol

1
Solange Sie ES6 verwenden (ich denke es ist so), können Sie Template-Strings verwenden, also join("\n")wird Join <Backtick> <Literal Newline> <Backtick>
Stephen

3

JavaScript (ES6), 48 Byte

f=(n=350)=>n?(n%35?'_':`
_`)+"|_"[n%2]+f(n-1):""

Weil Rekursion.


3

Bash, 44, 41 , 40 Bytes

printf _\|__%.0s {1..175}|egrep -o .{70}

Der Ausdruck besteht aus einer einzelnen Zeile mit einer Länge von 700 Zeichen, der Ausdruck entspricht jeweils 70 Zeichen.





2

Ruby, 30 Bytes

Dank an manatwork für diese Lösung

puts ("_|__"*175).scan /.{70}/

Ruby, 39 Bytes

10.times{|i|puts ("_|__"*18)[i%2*2,70]}

2
Der generieren-all-then-Split - Ansatz kürzer auch hier: puts ("_|__"*175).scan /.{70}/.
Handarbeit

@manatwork vielen Dank! Ich denke selten an die Verwendung, scanda ich mit Regexen nicht so vertraut bin. Sie wissen, dass Sie das als Ihre eigene Antwort gepostet haben könnten ...
Level River St

2

Haskell, 56 47 Bytes

unlines$[1..5]>>take 70.cycle<$>["_|__","___|"]
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.