Construa-me uma parede de tijolos!

73

Desafio

Preciso de ajuda para construir um muro de tijolos! Junte algum código para mim usando nenhuma entrada e produza a seguinte parede de saída mostrada abaixo:

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

Agora, esse muro tem exatamente 10caracteres altos e 70caracteres largos.

Como mencionado acima, não há entradas, apenas código. Menos quantidade de bytes, temos que construir com eficiência essa parede de tijolos. Obviamente, este programa tem que funcionar para construir o muro ..? ou obviamente não se constrói! Boa sorte!


Vencedora

O vencedor vai para Marinus usando a APLlinguagem, exigindo 12bytes inteiros ! https://codegolf.stackexchange.com/a/99028/61857


Agradeço a todos pela participação!

FivePixels
fonte
2
Relacionado , Relacionado ,
FlipTack 8/16
8
Também relacionado. (estranho que isso deve chegar hoje, haha)
Conor O'Brien
11
Isso está ok. Avisarei quando tiver um intérprete ativo. Estou trabalhando nisso agora, na verdade :)
ETHproductions
2
Relacionado !
RudolfJelin
30
Para pontos de bônus, faça o México pagar por isso.
Dawood ibn Kareem

Respostas:

46

APL, 12 bytes

10 70⍴'_|__'

Resultado:

      10 70⍴'_|__'
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
marinus
fonte
11
Acabei de perceber essa resposta ao colocar minha resposta em J. eles são basicamente o mesmo haha
Conor O'Brien
2
Isso gera outra coisa além da parede ascii. Isso é permitido?
Buffer Over Leia
ao usar tryapl.org, obtive a saída de parede. o que você recebeu @TheBitByte?
FivePixels
4
@ Dylan Ele provavelmente está confuso, já que o respondente incluiu o programa na saída sem saber a natureza do APL no REPL.
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

Eu gostaria de dizer que esta é uma das linguagens mais detalhadas em que quase tudo falha em compilar em um programa de trabalho.

Aparentemente, se -funciona em vez de minusdepende inteiramente do intérprete e, às vezes, funciona. Desta vez, eu estou colocando como golfe.

Abusa do fato de o Trumpscript ser escrito em Python e, portanto, factquando usado como um número inteiro é um.

Dicas de golfe são bem-vindas.

Azul
fonte
48
Entendo que o Trumpscript não permite números inferiores a 1.000.000? ;-)
ETHproductions
3
você está certo.
Azul
2
Você pode usar i is 1000005-1000000e i is i-fact? (Just tomado uma olhada no readme de Trumpscript.)
AlexRacer
19
Estou surpreso que permita que você use 1000000. Estados da documentaçãoAll numbers must be strictly greater than 1 million. The small stuff is inconsequential to us. .
Mad Físico
9
Facte lies(e outras constantes verdadeiras / falsas) têm uma chance aleatória, com base no tempo, de flip flop (ser revertida) durante a tokenização (consulte tokenizer.py, pesquise flip_flop) pode ser por isso que parecia não funcionar minus, quando realmente precisava com factnesse momento
pinkfloydx33 12/11
20

J, 12 bytes

10 70$'_|__'

Molda a corda à direita em uma forma de 10 por 70. Simples!

Conor O'Brien
fonte
18

BBC BASIC, 28 bytes

Tamanho do arquivo tokenizado 23 bytes.

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

WIDTH70normalmente seria seguido por uma nova linha. Ele define a largura do campo como 70. Em seguida, apenas imprimimos 175 cópias da sequência, que são agrupadas.

Level River St
fonte
2
Melhor (ab) uso de largura que eu já vi :)
ElPedro
Isso deve ter "23 bytes" no cabeçalho então.
Adám 08/11/16
@ Adám Somente se a versão tokenizada for postada como resposta.
ErikE
17

Brainfuck, 171 bytes

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

Brainfuck é divertido, aqui está a minha submissão.

Aqui está a saída:

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

Aqui está um link para experimentá-lo

https://repl.it/EW2Z/0

Mitchell Humphrey
fonte
16

WinDbg, 45 bytes

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

Como 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)

Resultado:

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  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"
leite
fonte
10

Pitão, 12 bytes

Código:

jcT*175"_|__

Explicação:

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

Experimente aqui .

Adnan
fonte
10

Python 2, 37 bytes

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

Decompõe duas linhas como 17 cópias de _|__, mais uma cópia interrompida por uma nova linha, mais 17 cópias e mais uma nova linha.

Alternativas mais longas:

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
fonte
Sua última alternativa é mais curto como print(("%s"*70+"\n")*10%(175*(*"_|__",)))em Python 3.
mbomb007
8

05AB1E , 13 bytes

Código:

"_|__"175×Tä»

Explicação:

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

Usa a codificação CP-1252 . Experimente online!

Adnan
fonte
7

PHP, 44 42 41 caracteres

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

(Só porque não tinha chance de usá-lo chunk_split()antes).

Graças a:

  • user59178 por sugerir o uso str_pad()(caractere -1)

Exemplo de execução:

bash-4.3$ php <<< '<?=chunk_split(str_pad(_,700,"|___"),70);'
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
homem a trabalhar
fonte
bytes, não contagem de caracteres.
FivePixels
2
Mesmo. Não uso caracteres multibyte.
manatwork
9
Riscado
2
@pajonk, fixo com PPCG - cruzado para fora 44 de estilo do usuário na minha máquina: i.stack.imgur.com/czn5h.png
manatwork
Você pode salvar um byte usando em str_padvez de str_repeat, principalmente porque _é tratado como uma constante com valor _.
precisa saber é o seguinte
7

Vim, 30 24 19 pressionamentos de teclas

18a___|<esc>YP2x}h.yk4P

Agradecemos a DrMcMoylex e nmjcman101 por salvar valiosas pressionamentos de tecla!

karpfen
fonte
11
Boa resposta, bem-vindo ao site! Algumas dicas: 1) afaz uma contagem, então você pode fazer em 18a___|<esc>vez de fazer a macro. 2) <cr>no modo normal é equivalente a j0, portanto, você pode tirar um byte de sua segunda macro.
DJMcMayhem
Legal, obrigado pelas dicas!
22816 Karpfen
11
Joguei sua solução um pouco por diversão. A formatação da parede antes de copiar / colar salva todos os bytes de não criar uma macro: 18a___|<esc>YP2x}h.yk5Psão 19 bytes.
nmjcman101
Bom, vou atualizar a resposta! Eu só vou substituir o segundo a última chave com 4, caso contrário, a parede está ficando muito alta :)
Karpfen
6

Perl, 47 34 29 bytes

$_="_|__"x175;say for/.{70}/g
Gabriel Benamy
fonte
Você pode jogar até 29:say for("_|__"x175)=~/.{70}/g
Dada
Por alguma razão, isso costumava não produzir saída toda vez que eu tentava, mas encontrei outra solução em tantos bytes. Obrigado mesmo assim!
Gabriel Benamy 8/11
Bem, o código que sugeri produz uma saída válida ... Talvez você tenha esquecido os parênteses "_|__"x175ou algo assim?
Dada
Eu acho que é isso que é. Imaginei parênteses teve que ir a algum lugar, eu simplesmente não conseguia descobrir onde, lol
Gabriel Benamy
Huhu, difícil de lembrar a precedência de cada operador ( =~tem uma precedência maior que x)!
Dada
5

Perl, 31 bytes

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

Você precisará de um -Esinalizador para executá-lo:

perl -E 'say+($@="_|__"x17,"_|
__$@
")x5'
dada
fonte
Pensou em uma abordagem ligeiramente diferente para 29 bytes: say for("_|__"x175)=~/.{70}/g:). Eu gosto do truque que você empregou lá!
Dom Hastings
@DomHastings huhu, escrevi exatamente o mesmo código nos comentários da resposta de Gabriel Benamy!
Dada
D'oh! Não vi aquele! Também vi que tem sido muito usado em outras respostas .. Oh, bem!
Dom Hastings
@DomHastings Sim, eu não pensei nisso no início, e ele já estava em resposta de Gabriel, é por isso que eu não atualizar a minha resposta depois;)
Dada
5

V , 24 , 16 bytes

175i_|__ò70|lé

Experimente online! Contém <esc>caracteres ( 0x1B), então aqui está um hexdump:

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

8 bytes salvos indiretamente graças à Jordânia!

DJMcMayhem
fonte
19 bytes: v.tryitonline.net/... eu não conseguia descobrir como usar o .\{-}atalho mencionado nos documentos V , apesar de tudo.
Jordânia
@ Jordan Wow, muito bom! O \{-}atalho não funcionaria, pois você não pode alterar o número interno. No entanto, você pode definir o ponto alto \{para obter isso . Sinta-se à vontade para postar isso como resposta.
DJMcMayhem
Ah, isso faz sentido. Postado aqui: codegolf.stackexchange.com/a/99070/11261
Jordan
Droga, eu ainda preciso Grokar esta linguagem: 25 bytes
statox
5

V , 18 bytes

-1 byte graças a DJMcMayhem.

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

Aqui está com caracteres não imprimíveis no formato xxd:

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

Experimente online!

Jordânia
fonte
Bom, não sou mais a única pessoa que usou o V! Agora vou ter que ver se eu posso assumir a liderança de volta, haha
DJMcMayhem
5

MATL, 15 bytes

'_|__'700:)70e!

Claro, você pode experimentar online! Explicação:

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

OK, na verdade, funciona da seguinte maneira:

'_|__' % 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
fonte
Bem feito! E o seu emoticon é melhor do que a minha
Luis Mendo
@LuisMendo Realmente, usar smileys pode ser considerado um padrão de design no MATL. xD Talvez você poderia ter :)sobre C... mas que seria a sua última de 1 byte ponto de código gone (ou existe outra razão Cnão é usado?)
Sanchises
Você quer se livrar do smiley? :-P
Luis Mendo
5

Python 2, 46 44 bytes

Basta usar a multiplicação de string para construir a string e cortar para obter os bits certos :)

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

obrigado a Antony Hatchkins por salvar dois bytes :)

Kade
fonte
Pode ter 2 bytes a menos:print'\n'.join([k[:70],k[2:]]*5)
Antony Hatchkins 14/11
@AntonyHatchkins Thanks!
Kade
4

PowerShell v2 +, 34 30 bytes

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

O estúpido algoritmo de correspondência de expressões regulares que exige -ne''... desperdiça 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

Economizou 4 bytes graças a Conor!

AdmBorkBork
fonte
Seria .{70}mais curto para o regex?
Conor O'Brien
splitfunciona assim em outros idiomas - você sempre obtém as partes incomparáveis, quer queira ou não. Alguns idiomas têm um matchoperador que pode ser usado para retornar uma matriz apenas de resultados correspondentes, mas não vejo um equivalente do PowerShell para isso.
Neil
@ Neil Performing 'abc'-split'(.)'retornará ('','a','','b','','c',''). Não há nada incomparável, mas devido à maneira como o algoritmo processa a string de entrada, você recebe as strings vazias de volta. Veja aqui .
AdmBorkBork
Sim, e estou dizendo que você não deve se surpreender com esse resultado, porque é isso que a divisão deve fazer.
Neil
@Neil Surprised? Não, na verdade não. Não significa que eu tenho que ser feliz com isso, no entanto. : 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]));}

Hora de começar a jogar ...

_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
cleblanc
fonte
3

Gelatina , 14 bytes

“_|__”ṁ700s70Y

TryItOnline!

Quão?

“_|__”ṁ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
fonte
11
Por definição, Jelly não pode exceder J.
Adám 08/11/16
Eu fiz algo semelhante sem a peculiar : “_|__”ẋ175œs⁵Y(14 bytes)
Erik o Outgolfer
3

MATL , 16 bytes

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

Experimente 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
Luis Mendo
fonte
Bater-lhe com um byte inteiro: codegolf.stackexchange.com/a/99073/32352
Sanchises
3

CJam , 15 bytes

"_|__"175*70/N*

Experimente online!

Resposta 05AB1E do porto de Adnan .

"_|__"             e# Push this string
      175*         e# Repeat 175 times
          70/      e# Split in pieces of size 70
             N*    e# Join by newlines
Luis Mendo
fonte
3

Javascript REPL, 45 bytes

"_|__".repeat(175).match(/.{70}/g).join("\n")
Juan Tonina
fonte
11
Bem-vindo ao PPCG! Isso deve ser marcado como "JavaScript REPL" ou semelhante, pois isso não imprime nada fora de um ambiente de console interativo.
Martin Ender
11
Isso não é 45 bytes?
Acrolith
@daHugLenny você está certo, eu contei \ n como um único byte
Juan Tonina
onde está o console.log?
Cardeol 9/11
11
Enquanto você estiver usando ES6 (acho que é isso) Você pode usar cordas modelo, então join("\n")torna-se juntar <backtick> <nova linha literal> <backtick>
Stephen
3

JavaScript (ES6), 48 bytes

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

Porque recursão.

ETHproductions
fonte
3

Bash, 44, 41 , 40 bytes

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

O printf cria uma única linha com 700 caracteres, o egrep corresponde a 70 caracteres por vez.

rjmunro
fonte
2

///, 51 bytes

Se uma nova linha à direita for permitida:

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

Experimente online!

acrólito
fonte
2

Pyke, 12 bytes

w�"_|__"*TfX

onde está o byte literal 163.

Experimente aqui! ( w�substituído por literal)

Azul
fonte
2

Ruby, 30 bytes

Graças ao trabalho manual para esta solução

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

Ruby, 39 bytes

10.times{|i|puts ("_|__"*18)[i%2*2,70]}
Level River St
fonte
2
A abordagem gerar-all-então-split é mais curto aqui também: puts ("_|__"*175).scan /.{70}/.
Manatwork
@manatwork muito obrigado! Eu raramente penso em usá-lo scanporque não me sinto confortável com expressões regulares. Você sabe que poderia ter postado isso como sua própria resposta ...
Nível River St
2

Haskell, 56 47 bytes

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