De repente, quero muito jogar tênis, mas infelizmente não tenho quadra!
Surpresa! É aqui que você entra.
Você precisa imprimir uma quadra de tênis para mim, mas precisa fazê-lo no menor número possível de bytes por motivos confidenciais.
Quadra de tênis
---------
| |
---------
| | |
xxxxxxxxx
| | |
---------
| |
---------
Respostas:
Tela , 13 bytes
Experimente aqui!
fonte
Python 2, 65 bytes
Flp.Tkc salvou um byte.
fonte
'|'+' '*7
a segunda strings
para salvar um byte!05AB1E ,
292726 bytesExperimente online!
fonte
9'-×D'|4ð׫©ûs®¨'|«û5'x×»û
tentou refatoração um pouco, não pode quebrar 26.Python
3-7372 bytesPython 3.6 - 75 bytes
O crédito vai para flp-tkc . Obrigado :)
Tente aqui!
fonte
/// ,
6456 bytesExperimente online!
Outra solução de 56 bytes:
fonte
V , 25 bytes
Experimente online!
Isso deve ter 23 bytes:
Mas encontrei vários erros ao criá-lo. :(
fonte
Gelatina , 25 bytes
TryItOnline!
Eu esperava usar a repetição de 1,3,1 quarto de quadra, mas não posso comprimir isso em menos (uma versão bruta é 28:)
“ßṂuB’b4s3x“¢¤¢‘ị“- x|”ŒBŒḄY
.Quão?
fonte
J,
70545150 bytesGuardou um byte graças ao Zgarb!
Alguma técnica de compactação padrão, usando um RLE compactado.
fonte
9 9$'-| |-| | |x| | |'#~3 9 1 7{~4#.inv 1851926050
Ruby, 60 bytes
Ungolfed
fonte
ferramentas bash / Unix,
5857 bytesApenas quatro caracteres diferentes de nova linha aparecem na saída desejada, permitindo que cada linha seja codificada como um número base-4. Esses números são então escritos em hexadecimal no script, por questões de brevidade.
A calculadora Unix dc é usada para a conversão de base 16 em base 4 e para manipulação de pilha, para permitir fácil repetição de linhas nos lugares certos.
Editar: Raspe um byte, trocando dois dos dígitos da base 4 usados para codificar caracteres, permitindo que o comando tr seja um byte menor que a versão anterior.
fonte
JavaScript, 85 bytes
fonte
JavaScript (ES6),
86848381 bytesEconomizou 2 bytes, graças a Neil
Método alternativo # 1, 93 bytes
Método alternativo # 2, 86 bytes
Sugerido por Neil:
Método alternativo # 3, 91 bytes
Uma abordagem recursiva:
fonte
console.log('-9\n| 7|\n-9\n| 3| 3|\nx9\n| 3| 3|\n-9\n| 7|\n-9'.replace(/.\d/g,s=>s[0].repeat(s[1])))
(substitua\n
por nova linha obviamente).console.log('-\n |\n-\n |\nx\n |\n-\n |\n-'.replace(/.*/g,s=>s.repeat(9).slice(-9)))
.|
conforme apropriado, em vez do espaço único que aparece no meu comentário.SOGL 0,5 ,
242320 bytes (não concorrente)Explicação:
Então, como a string compactada funciona?
A sequência convertida de base250 em binário é
1000000100111110010100001110100000001100010001
e aproximadamente o que faz:
não concorrente, porque o idioma é posterior ao desafio. E esse desafio tem apenas um dia de vida. Eu sabia que deveria ter colocado algo ontem. Fiz isso como um teste para o meu idioma e acabou bom demais para não ser publicado. Certamente isso também é mais jogável.
fonte
/// , 59 bytes
Experimente online!
Outgolfed ...
fonte
Javascript (ES6), 86 bytes:
Teste aqui:
fonte
b
, pois isso significa que você pode remover a nova linha depoisxxxxxxxxx
e a que você adicionar entrea
eb
. Você pode salvar outros 3 bytes definindoa
como---------
primeiro e concatenando a segunda linha e a para si mesmo.05AB1E , 26 bytes
Usa a codificação CP-1252 . Experimente online!
fonte
PHP,
6662 bytesEsta é a resposta original (66 bytes):
Ele gera um aviso por causa da constante desconhecida
x
. O aviso pode ser suprimida, definindoerror_reporting=0
emphp.ini
ou na linha de comando:A última linha da saída não termina com um caractere de nova linha.
A resposta atualizada (62 bytes), melhorando uma melhoria sugerida por @Titus:
Execute-o sem um arquivo de configuração (o padrão é o
error_reporting=0
seguinte):Ambas as versões do código contêm novas linhas literais incorporadas na string (1 byte menor que
\n
) e não podemos desembrulhar.fonte
-d error_reporting=0
, basta usar-n
.<?=$a=($b="---------\n|")."...
.-n
é muito menor que-d error_reporting=0
:-) Na verdade, existem apenas 66 caracteres úteis na resposta. Eu os contei usandols -l
e esqueci que o meuvi
está configurado para garantir que o arquivo termine com uma nova linha. Melhorei sua melhoria e apertei mais 3 bytes. Obrigado.PHP, 72 bytes
Eu quase odeio quando é mais curto assim do que com um pouco de cálculo.
fonte
Ruby, 52 bytes
Usando a simetria dupla, as linhas são:,
0-1-0 / 2-3-2 / 0-1-0
o loop pode ser facilmente desenrolado e a lista aninhada é achatada na saída.fonte
Pyke,
282625 bytesExperimente aqui!
fonte
05AB1E, 25 bytes
Usa a codificação CP-1252 .Experimente online!
Explicação:
fonte
Vim, 32 bytes
Isso imprimirá a quadra de tênis em um buffer vim.
^M
representa a tecla Enter (0x0d) e^[
é a tecla Escape (0x1b). Você pode executar essas teclas / códigos salvando-os em um arquivo e executandoImprimir em stdout
Se tiver que ser impresso no stdout, você poderá salvar o buffer em um arquivo (eu usei "a") e usar o shell que
vim
estiver configurado para usar (eu useibash
), bem como ocat
programa para imprimir a quadra de tênis para stdout (51 bytes):É o mesmo que a versão anterior, mas
:w!a|sil !cat %^M:q^M
adicionada ao finalfonte
J, 36 bytes
Isso funciona no REPL, que é a maneira padrão de usar J:
Com 41 bytes , posso imprimir o resultado em STDOUT:
Experimente online!
Explicação
Construo a quadra de tênis uma linha de cada vez.
fonte
PowerShell ,
6766 bytesExperimente online!
Apenas uma multiplicação de cadeias, definindo variáveis e garantindo que elas sejam encapsuladas em parênteses para colocar cópias no pipeline. O padrão
Write-Output
na conclusão do programa nos fornece novas linhas de graça.Agradecemos ao @ConnorLSW por salvar um byte óbvio.
fonte
$(' '*7)
é na verdade 8 caracteres, seria mais curto para fazer apenas| |
como espaços.ToLower()
save na minha outra resposta;)Python 2, 75 bytes
Usa variáveis emprestadas de @GurupadMamadapur
Alternativa também para 75
fonte
Emacs,
4335 pressionamentos de teclasM-9
x
RET: nove x's, returnC-SPC: set mark
|
M-3 SPC|
M-3 SPC|
RET: pipe, três espaços, pipe, três espaços, pipe, returnM-9
-
RET: nove hífens, return|
M-7 SPC|
RET: pipe, sete espaços, pipe, returnM-9
-
RET: nove hífens, returnC-x C-x: exchange point and mark, selecionando a região
M-w: copiar região
C-p: linha anterior
C-y: arrancar texto copiado
M-x
rev-r
RET: executarreverse-region
comandofonte
Lua, 82 bytes.
Eu tentei muitos métodos, e ainda assim este foi o vencedor.
fonte
Pushy , 33 bytes
Essa pergunta teve 33 votos positivos e houve 33 respostas, então eu apenas tive que postar uma solução de 33 bytes ...
Experimente online!
Explicação
O código pode ser dividido em várias partes, para facilitar a compreensão. A primeira parte funciona assim:
A pilha está agora:
O operador de espelho
w
, em seguida, espelha toda a pilha, produzindo:Então:
A pilha agora está começando a se parecer com a quadra de tênis:
Para finalizar, usamos o operador de espelho
w
mais uma vez, o que reflete essa corda para produzir a quadra de tênis completa.Tudo o que resta agora é imprimir, o que é feito pelo
"
personagem.fonte
Shell Unix; usando dc e tr; 55 bytes: (Otimização da solução Mitchell Spector)
Outras soluções: Using sed; 81 bytes;
Usando a função dc: 88 bytes
ou
Usando a função bc: 99 bytes
fonte
PowerShell, 56 bytes
Explicação: meia-quadra direta
Alternativa, 68 bytes
Explicação: o quarto de quadra usa os mesmos índices para a exibição de linhas e colunas
fonte