¡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!



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


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⍴'_|__'
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__

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.


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!


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.


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


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  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"

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í .


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("_|__"))

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!


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);'
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__

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!


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

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'

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!


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!


¡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.

¡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 :)


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!


¿ .{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 ...

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

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

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



3

Javascript REPL, 45 bytes

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

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.


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.





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]}

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<$>["_|__","___|"]
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.