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!



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


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

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.


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!


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.


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


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

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 .


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

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!


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

bytes, não contagem de caracteres.
FivePixels

2
Mesmo. Não uso caracteres multibyte.
manatwork

9

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!


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

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'

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!


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!


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.

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


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!


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

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

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

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

Javascript REPL, 45 bytes

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

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.


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.





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

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<$>["_|__","___|"]
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.