¡Construyeme una pared de ladrillos!

73

Desafío

¡Necesito ayuda para construir un muro de ladrillos! Agregue un código para mí sin entrada y produzca el siguiente muro de salida que se muestra a continuación:

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

Ahora, este muro tiene exactamente 10caracteres altos y 70caracteres anchos.

Como se indicó anteriormente, no hay entradas, solo código. Menos cantidad de bytes, tenemos que construir eficientemente este muro de ladrillos. Obviamente, este programa tiene que funcionar para construir el muro ...? ¡o obviamente no se construirá solo! ¡Buena suerte!


Ganador

¡El ganador se dirige a Marinus usando el APLidioma, que requiere 12bytes completos ! https://codegolf.stackexchange.com/a/99028/61857


¡Gracias a todos por participar!

Cinco píxeles
fuente
2
Relacionado , Relacionado ,
FlipTack
8
También relacionado. (extraño que esto ocurra hoy, jaja)
Conor O'Brien el
1
Está bien. Te avisaré cuando tenga un intérprete que trabaje. Estoy trabajando en eso ahora, en realidad :)
ETHproductions
2
Relacionado !
RudolfJelin
30
Para obtener puntos de bonificación, haga que México lo pague.
Dawood ibn Kareem

Respuestas:

46

APL, 12 bytes

10 70⍴'_|__'

Salida:

      10 70⍴'_|__'
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
marinus
fuente
1
Acabo de notar esta respuesta cuando puse mi respuesta J. son básicamente lo mismo jaja
Conor O'Brien
2
Esto genera algo más además del muro ASCII. ¿Esto está permitido?
Buffer Over Leer el
cuando uso tryapl.org, obtuve la salida de la pared. ¿Qué has recibido @TheBitByte?
FivePixels
44
@Dylan Probablemente esté confundido, ya que el respondedor incluyó el programa en la salida sin conocer la naturaleza REPL de APL.
Conor O'Brien el
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

Me gustaría decir que este es uno de los lenguajes más detallados donde casi todo no se compila en un programa de trabajo.

Aparentemente, si -funciona en lugar de minusdepende completamente del intérprete y a veces funciona. Esta vez lo hizo así que lo estoy poniendo como golf.

Abusa del hecho de que Trumpscript está escrito en Python y, por lo tanto, factcuando se usa como un entero es uno.

Consejos de golf bienvenidos.

Azul
fuente
48
Supongo que Trumpscript no permite números menores a 1,000,000. ;-)
ETHproductions
3
estás en lo correcto.
Azul
2
¿Puedes usar i is 1000005-1000000y i is i-fact? (Solo eche un vistazo al archivo Léame de Trumpscript.)
AlexRacer
19
Me sorprende que te permita usar 1000000. Documentación de estados All numbers must be strictly greater than 1 million. The small stuff is inconsequential to us..
Físico loco
9
Facty lies(y otras constantes de verdad / falso) tienen una oportunidad aleatoria, basada en el tiempo, de flip flop (revertir) durante la tokenización (ver tokenizer.py, buscar flip_flop) puede ser la razón por la que parecía no funcionar minus, cuando realmente tenía que funcionar con facten ese momento
pinkfloydx33
20

J, 12 bytes

10 70$'_|__'

Da forma a la cuerda de la derecha en una forma de 10 por 70. ¡Sencillo!

Conor O'Brien
fuente
18

BBC BASIC, 28 bytes

Tamaño de archivo tokenizado de 23 bytes.

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

WIDTH70normalmente sería seguido por una nueva línea. Establece el ancho del campo en 70. Luego imprimimos 175 copias de la cadena, que se envuelven.

Level River St
fuente
2
Mejor (ab) uso de WIDTH que he visto :)
ElPedro
Esto debería tener "23 bytes" en el encabezado entonces.
Adám
@ Adám Solo si la versión tokenizada se publica como respuesta.
ErikE
17

Brainfuck, 171 bytes

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

Brainfuck es divertido, aquí está mi presentación.

Aquí está la salida:

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

Aquí hay un enlace para probarlo

https://repl.it/EW2Z/0

Mitchell Humphrey
fuente
16

WinDbg, 45 bytes

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

Cómo funciona:

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)

Salida:

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  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"
Leche
fuente
10

Pyth, 12 bytes

Código:

jcT*175"_|__

Explicación:

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

Probar aquí .

Adnan
fuente
10

Python 2, 37 bytes

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

Descompone dos filas como 17 copias de _|__, más otra copia interrumpida por una nueva línea, más 17 copias más, más otra nueva línea.

Alternativas más largas:

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("_|__"))
xnor
fuente
Su última alternativa es más corta como print(("%s"*70+"\n")*10%(175*(*"_|__",)))en Python 3.
mbomb007
8

05AB1E , 13 bytes

Código:

"_|__"175×Tä»

Explicación:

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

Utiliza la codificación CP-1252 . Pruébalo en línea!

Adnan
fuente
7

PHP, 44 42 41 caracteres

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

(Solo porque chunk_split()nunca antes tuve la oportunidad de usarlo ).

Gracias a:

  • user59178 por sugerir usar str_pad()(-1 carácter)

Ejecución de muestra:

bash-4.3$ php <<< '<?=chunk_split(str_pad(_,700,"|___"),70);'
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
hombre trabajando
fuente
bytes, no recuento de caracteres.
FivePixels
2
Mismo. No uso caracteres multibyte.
trabajo de
2
@pajonk, arreglado con PPCG - Estilo de usuario tachado 44 en mi máquina: i.stack.imgur.com/czn5h.png
manatwork
Puede guardar un byte utilizando en str_padlugar de str_repeat, en gran parte porque _se trata como una constante con valor _.
user59178
7

Vim, 30 24 19 pulsaciones de teclas

18a___|<esc>YP2x}h.yk4P

¡Gracias a DrMcMoylex y nmjcman101 por guardar valiosas pulsaciones de teclas!

karpfen
fuente
1
Buena respuesta, bienvenido al sitio! Algunos consejos: 1) atoma un recuento, por lo que podría hacer en 18a___|<esc>lugar de hacer la macro. 2) <cr>en modo normal es equivalente a j0, por lo que podría quitar un byte de su segunda macro.
DJMcMayhem
¡Genial, gracias por los tips!
karpfen
1
Golfé tu solución un poco por diversión. Formatear el muro antes de copiar / pegar ahorra todos los bytes de no hacer una macro: 18a___|<esc>YP2x}h.yk5Pes 19 bytes.
nmjcman101
¡Bien, actualizaré la respuesta! Solo reemplazaré la penúltima clave con 4, de lo contrario, el muro se está poniendo demasiado alto :)
karpfen
6

Perl, 47 34 29 bytes

$_="_|__"x175;say for/.{70}/g
Gabriel Benamy
fuente
Puedes jugar golf hasta 29:say for("_|__"x175)=~/.{70}/g
Dada
Por alguna razón, eso no producía salida cada vez que lo intentaba, pero encontré otra solución en tantos bytes. ¡Gracias de cualquier forma!
Gabriel Benamy
Bueno, el código que sugerí produce una salida válida ... ¿Tal vez olvidaste el paréntesis "_|__"x175o algo así?
Dada
Creo que eso es lo que es. Pensé que los paréntesis tenían que ir a alguna parte, simplemente no podía entender dónde, jajaja
Gabriel Benamy
¡Huhu, difícil de recordar la precedencia de cada operador ( =~tiene una precedencia más alta que x)!
Dada
5

Perl, 31 bytes

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

Necesitarás una -Ebandera para ejecutarlo:

perl -E 'say+($@="_|__"x17,"_|
__$@
")x5'
Dada
fuente
Pensé en un enfoque ligeramente diferente para 29 bytes: say for("_|__"x175)=~/.{70}/g:). ¡Aunque me gusta el truco que empleaste allí!
Dom Hastings
@DomHastings huhu, ¡escribí exactamente el mismo código en los comentarios de la respuesta de Gabriel Benamy!
Dada
D'oh! ¡No vi esa! También vi que se ha usado mucho en otras respuestas ... ¡Oh, bueno!
Dom Hastings
@DomHastings Sí, al principio no pensé en eso, y ya estaba en la respuesta de Gabriel, así que por eso no actualicé mi respuesta después;)
Dada
5

V , 24 , 16 bytes

175i_|__ò70|lé

Pruébalo en línea! Esto contiene <esc>caracteres ( 0x1B), así que aquí hay un hexdump:

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

¡8 bytes guardados indirectamente gracias a Jordan!

DJMcMayhem
fuente
19 bytes: v.tryitonline.net/... no podía encontrar la manera de utilizar el .\{-}acceso directo se menciona en los documentos V , sin embargo.
Jordan
@ Jordan Wow, muy bien! El \{-}atajo no funcionaría de todos modos, ya que no puede cambiar el número dentro. Sin embargo, puede configurar el bit alto \{para obtener esto en su lugar. Siéntase libre de publicar eso como respuesta.
DJMcMayhem
Ah, eso tiene sentido. Publicado aquí: codegolf.stackexchange.com/a/99070/11261
Jordania el
Maldita sea, todavía necesito asimilar este idioma: 25 bytes
statox
5

V , 18 bytes

-1 byte gracias a DJMcMayhem.

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

Aquí está con caracteres no imprimibles en formato xxd:

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

Pruébalo en línea!

Jordán
fuente
¡Bien, ya no soy la única persona que ha usado V! Ahora voy a tener que ver si puedo recuperar el liderazgo, jaja
DJMcMayhem
5

MATL, 15 bytes

'_|__'700:)70e!

¡Por supuesto, puedes probarlo en línea! Explicación:

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

OK, en realidad, funciona de la siguiente manera:

'_|__' % 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.
Sanchises
fuente
¡Bien hecho! Y tu carita es mejor que la mía
Luis Mendo
@LuisMendo Realmente, el uso de emoticonos podría considerarse un patrón de diseño en MATL. xD Tal vez usted podría tener :)sobre C... pero que sería su último 1 byte punto de código ido (o hay otra razón Cno se utiliza?)
Sanchises
¿Quieres deshacerte del smiley? :-P
Luis Mendo
5

Python 2, 46 44 Bytes

Simplemente usando la multiplicación de cadenas para construir la cadena, y cortando para obtener los bits correctos :)

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

gracias a Antony Hatchkins por guardar dos bytes :)

Kade
fuente
Podría ser 2 bytes menos:print'\n'.join([k[:70],k[2:]]*5)
Antony Hatchkins
@AntonyHatchkins ¡Gracias!
Kade
4

PowerShell v2 +, 34 30 bytes

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

Estúpido algoritmo de coincidencia de expresiones regulares que requiere -ne''... ¡desperdicia cinco bytes!

'_|__'*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

¡Guardado 4 bytes gracias a Conor!

AdmBorkBork
fuente
¿ .{70}Sería más corto para la expresión regular?
Conor O'Brien el
splitfunciona así en otros idiomas: siempre obtienes las porciones sin igual, las quieras o no. Algunos idiomas tienen un matchoperador que se puede usar para devolver una matriz de solo resultados coincidentes, pero no veo un equivalente de PowerShell para eso.
Neil
@Neil Performing 'abc'-split'(.)'volverá ('','a','','b','','c',''). No hay nada sin igual, pero debido a cómo el algoritmo procesa a través de la cadena de entrada, obtienes cadenas vacías. Ver aquí .
AdmBorkBork
Sí, y digo que no deberías sorprenderte con ese resultado, porque eso es lo que se supone que debe hacer Split.
Neil
@Neil sorprendido? No en realidad no. Sin embargo, eso no significa que tenga que estar feliz por eso. : 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]));}

Es hora de comenzar a jugar golf ...

_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
cleblanc
fuente
3

Jalea , 14 bytes

“_|__”ṁ700s70Y

TryItOnline!

¿Cómo?

“_|__”ṁ700s70Y - Main link: no arguments
“_|__”         - literal ['_','|','_','_']
      ṁ700     - mould like something 700 long
          s70  - split into chunks of length 70
             Y - join with line feeds
Jonathan Allan
fuente
1
Por definición, Jelly no puede ser más larga que J.
Adám
Hice algo similar sin lo peculiar : “_|__”ẋ175œs⁵Y(14 bytes)
Erik the Outgolfer
3

MATL , 16 bytes

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

Pruébalo en línea!

'___|'   % 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
Luis Mendo
fuente
Le ganó
Sanchises
3

Javascript REPL, 45 bytes

"_|__".repeat(175).match(/.{70}/g).join("\n")
Juan tonina
fuente
1
Bienvenido a PPCG! Esto debe estar marcado como "REPL de JavaScript" o similar, ya que esto no imprime nada fuera de un entorno de consola interactiva.
Martin Ender
1
¿No son estos 45 bytes?
acrolith el
@daHugLenny tienes razón, conté \ n como un solo byte
Juan Tonina
¿Dónde está el console.log?
cardeol
1
Mientras esté usando ES6 (creo que lo es), puede usar cadenas de plantilla, por lo que se join("\n")convierte en join <backtick> <literal newline> <backtick>
Stephen
3

JavaScript (ES6), 48 bytes

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

Porque la recursividad.

ETHproducciones
fuente
3

Bash, 44, 41 , 40 bytes

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

El printf tiene una sola línea de 700 caracteres de longitud, el egrep coincide con 70 caracteres a la vez.

rjmunro
fuente
2

///, 51 bytes

Si se permite una nueva línea final:

/e/aaaa//a/_|__//b/eeeea_|//c/__eeeea//d/b
c
/ddddd

Pruébalo en línea!

acrolito
fuente
2

Pyke, 12 bytes

w�"_|__"*TfX

donde está el byte literal 163.

Pruébalo aquí! ( w�reemplazado por literal)

Azul
fuente
2

Rubí, 30 bytes.

Gracias a manatwork por esta solución

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

Ruby, 39 bytes

10.times{|i|puts ("_|__"*18)[i%2*2,70]}
Level River St
fuente
2
El enfoque generará-all-entonces-split es más corto también en este caso: puts ("_|__"*175).scan /.{70}/.
trabajo de
@manatwork muchas gracias! Raramente pienso en usarlo, scanya que no estoy tan cómodo con las expresiones regulares. Sabes que podrías haber publicado eso como tu propia respuesta ...
Level River St el
2

Haskell, 56 47 bytes

unlines$[1..5]>>take 70.cycle<$>["_|__","___|"]
Angs
fuente