... você vai me ajudar a imortalizá-lo?
Eu tenho esse travesseiro há alguns anos e, aparentemente, é hora de me livrar dele. Você pode escrever uma função ou programa que eu possa trazer comigo e usar para recriar esse travesseiro sempre que eu quiser relembrar um pouco.
Ele deve funcionar sem argumentos de entrada.
A saída deve ser exatamente assim (novas linhas e espaços à direita estão corretos).
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
Este é o código golf, então o código mais curto em bytes vence!
Entre os melhores
code-golf
ascii-art
kolmogorov-complexity
Stewie Griffin
fonte
fonte
Respostas:
05AB1E ,
1815 bytesCódigo:
Explicação:
Usa a codificação CP-1252 . Experimente online!
fonte
/// , 116 bytes
Experimente online!
Edit : the
\\\\\\\\\\\\\\\/
e\\\\\\\\\\\\\\\\
são realmente um único / e \, respectivamente.Edit : -3 porque eu pensei em remover
i
. Eu acho que isso não pode ser mais jogado.fonte
Python 2, 49 bytes
Agradecemos a Mitch Schwartz por esse método limpo que economiza um byte. A idéia é imprimir quatro linhas
('\\'*5+'/'*5)*6
, trocar os papéis de barra e barra invertida e, em seguida, fazer todo esse processo 6 vezes. Os dois caracteres são armazenados ema
eb
, e trocados comoa,b=b,a
. O loop duplo é duplo, gerando a seguinte sequência de códigos e executando-a comexec
:50 bytes:
Cria a sequência de linhas, imprime-a quatro vezes e depois a inverte, e faz isso 6 vezes. Faz isso gerando o seguinte código e, em seguida, executando-o:
Aqui estão algumas das iterações do meu golfe:
fonte
05AB1E, 15 bytes
Experimente online!
Explicação:
Usa a codificação CP-1252 .
fonte
JavaScript (ES6),
686058 bytesUma função recursiva. Várias otimizações inspiradas nos chocochaos respondem .
Demo
Mostrar snippet de código
fonte
&1
e salvar dois bytesn < 480
. Paran >= 480
, precisaríamos parênteses:(n/240^n/5)&1
.Chiclete , 30 bytes
Resposta obrigatória do chiclete.
fonte
Haskell,
777057 bytesAborrecido se
concat
es emreplicate
vez de brincar com os senos. Velho era:fonte
Brainfuck, 140 bytes
:-D
fonte
Python 2,
8680767473 bytesProvavelmente poderia jogar um pouco mais, mas é um começo.
Editar
Salvo 6, removendo alguns suportes desnecessários
Outros 4 usando uma única string e depois invertendo-a
Obrigado @Adnan. Teve uma madrugada de ontem à noite e ainda não estava totalmente acordado ainda: p
-1 movendo o
*24
para a variável em vez de usá-lo duas vezesfonte
*6*4
é o mesmo que*24
? : pBrainfuck, 149 bytes
O melhor intérprete EVAR!
Isso usa 6 células (sem quebra, sem módulo). Aqui estão eles:
As
00
células são usadas para os contadores de loop. Aqui, os contadores são preenchidos com valores iniciais:O contador mais à esquerda é para o loop mais interno (sim, eu uso loops aninhados de profundidade 3). Observe que a quarta célula (
04
contador) é usada duas vezes, uma/////\\\\\...
vez e uma vez para\\\\\/////...
sempre.0A
,2F
E5C
são os caracteres\n
,/
e\
, respectivamente.fonte
Python 2.7 66 -> 56 -> 55 bytes
novo no código de golfe
Obrigado Stewie Griffin
Esqueceu um espaço em branco bobo;)
fonte
d
ee
, talvez mais. Eu não testei isso, mas deve ser próximo:print(4*c+4*(6*b+"\n"))*3
. São 5 bytes a menos.a="/"*5+"\\"*5;print(4*(6*a+"\n")+4*(6*a[::-1]+"\n"))*3
Brainfuck, 179 bytes
Eu sei que essa não é a melhor pontuação do segmento, mas eu queria experimentar o cérebro e tentar fazer isso.
Edit: Eu devo ter cometido um erro ao copiar. Esta versão deve funcionar
fonte
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
quatro vezes e depois infinita\
.Dyalog APL , 24 bytes
fonte
'/\'[4⌿5/2|+/¨⍳6 12]
(⎕io←0
Pyke, 16 bytes
Após a atualização hoje, permitida
"
em literais de cadeia de caracteres, 17 bytesExperimente aqui!
fonte
MATL ,
1816 bytesExperimente online!
Explicação
fonte
Pitão, 22 bytes
Experimente aqui .
Explicação:
Desculpe se a explicação é um pouco difícil de entender, mas foi meio complicada.
fonte
V ,
2221 bytesEditar Um byte ganho, obrigado @DjMcMayhem:
As mudanças são:
Y4P
->4Ä
Use a linha duplicada V em vez do comando interno do Vim (isso adicionará uma linha em branco no final do parágrafo)3äG
->3ä}
Duplicar o parágrafo em vez de todo o buffer (para evitar a linha em branco gerada por alterações anteriores)Postagem original
Experimente online
Decomposto como este:
fonte
5á\5á/05ä$5Ä5x$p4Ä3äG
ou seja, substituirY4P
por,4Ä
mas por um motivo que eu não entendo, copia uma linha em branco adicional ... Se você puder Esclareça-me sobre isso, seria bom. Além disso, se eu encontrar algum tempo livre eu ficaria feliz em contribuir para a linguagem (especialmente a edição # 4 )Ä
é sinônimodd
, nãoY
. Isso geralmente não é um problema, mas causa alguns problemas se o buffer tiver apenas uma linha ou se você estiver na última linha.3äG
com3ä}
uma vez que não vai arrancar a última nova linha. v.tryitonline.net/…Geléia ,
1716 bytesExperimente online!
Graças a 6710 (milhas) por -1 byte.
fonte
⁾/\ẋ6Wẋ4;U$ẋ3x5Y
Y
s!Na verdade , 21 bytes
Experimente online!
-1 byte de Adnan
Explicação:
fonte
"/\"5*S
para criar a sequência de barras?Ruby, 46 bytes
Cria a seguinte sequência (70 caracteres, um conjunto a mais do que o necessário) e depois alterna entre os caracteres de amostra
0..59
e a5..64
partir dela.código e saída
erro interessante (um 7 em vez de um 5)
fonte
APL, 30 bytes
Sou bastante novo no APL (estou usando o APLX, mas isso deve funcionar na maioria das implementações do APL), portanto, essa é uma solução bastante simplista.
Explicação:
fonte
C,
66bytes5 bytes salvos graças ao orlp.
Caractere simples por impressão de caracteres. 61 caracteres por linha, o último é nova linha (ASCII 10) e os outros alternam entre
/
47 e\
92.fonte
i;f(){for(i=1463;i;)putchar(i--%61?i%61/5+i/244&1?92:47:10);}
.i--
mas não tive tempo de procurar.Python 2, 63 bytes
Para Python 3, faça o seguinte (65 bytes):
fonte
/////\\\\\/////...
quatro vezes, separados por novas linhasBrainfuck auto-modificável , 91 bytes
Experimente online!
O mesmo que minha resposta cerebral , mas usa os 3 últimos caracteres do código-fonte em vez de gerá-los em tempo de execução.
fonte
J,
312819 bytesUso
fonte
Oitava,
5048 bytesFunção anônima:
Você pode tentar online aqui . Simplesmente execute o comando acima e, em seguida, execute a função com
ans()
.Essencialmente, isso cria uma matriz do valor 47, que é 4 de altura e 5 de largura. Em seguida, ele cria uma segunda matriz de valor 92, que é do mesmo tamanho.
As duas matrizes são concatenadas em um tabuleiro de damas de
[A B;B A]
. Também''
é concatenado para forçar a conversão em cadeias de caracteres.Finalmente, toda a matriz é replicada 3 vezes para baixo e 6 vezes para formar o tamanho final.
fonte
ans=
antes do travesseiro. Tê-lo na função contorna isso, pois é esperado que você retorne a resposta a uma variável em vez de exibi-la.ans()
). O que é inútil, poisans()
ainda imprimeans
quando é executado!ans()
é um identificador de função que pode ser chamado , então você não precisa atribuí-lo a algo com, por exemploa=@...
, porque está implicitamente atribuídoans
como identificador. Também não é impressoans=
quando executado, a menos que você solicite especificamente, não fazendo nada com o valor retornado e não adicionando a;
. Se você o fizerdisp(ans())
, imprimirá apenas a saída exata (nãoans=
). Mas sim, o aviso é irritante, no entanto, isso não aconteceu anteriormente; portanto, não é específico do idioma, mas específico do intérprete.disp(ans())
antes de obter sua saída, precisa adicionar 12 bytes à sua resposta. Minha opinião é que é assim que a oitava apresenta seu resultado, e isso é bom.PHP,
7369 bytesDemo
http://ideone.com/z7N1Md
fonte
for($s='/\\';$i<1440;$i++)echo$i%60<1?'\n':'',$s[($i/5+($i/240|0))%2];
(substitua\n
por uma nova linha real).echo
não é uma função, portanto, não precisa de parênteses. Além disso,echo
pode receber vários valores, separados por vírgula. Isso realmente remove a necessidade desses parênteses. E então, dentro do seu$s[...]
, o cálculo mais externo também não precisa de parênteses, pois está contido nele[]
. Usar$s[($i/5+($i/240|0))%2]
tem o mesmo efeito e é mais curto.echo
eprint
aceite vários parâmetros. Masprint
requer parênteses com vários parâmetros quando usado no incremento, condição ou atribuição de um loop.<1
, alternando as expressõesecho$i%60?'':' ',
, nova linha como expressão 3 no ternário.Java 7, 120 bytes
Empurrou tudo em um loop. Bate Brainfuck, missão cumprida.
Veja on-line: https://ideone.com/pZjma3
fonte
Vim,
4427 bytesEDIT Muitos bytes ganhos graças a @DrMcMoylex:
Resposta original:
Não tenho certeza de que realmente se encaixa nas regras deste site, mas achei divertido experimentá-lo:
Que pode ser decomposto assim:
fonte
5i/<esc>5a\<esc>0y$5P
no início para salvar 9 bytes.Brainfuck, 168 bytes
fonte