Introdução
Em 26 de agosto de 2017, Floyd Mayweather, Jr. enfrentará Conor McGregor em uma luta de boxe.
Ambos os participantes receberão a quantia fenomenal de 100 milhões de dólares!
Infelizmente, ainda não temos dinheiro, mas já podemos preparar a grande maleta que conterá todas as notas.
_________________________
| |
|=======================================|
| $ $$$$$ $$$$$ $ $ |
| $ $ $ $ $ $ $$$ $$$ |
| $ $ $ $ $ $ $$$ $ |
| $ $$$$$ $$$$$ $ $ |
|_______________________________________|
A pasta é composta por _
, |
, =
e$
.
Tem um tamanho de 41 caracteres de largura (ignorando as novas linhas) e 6 de altura (+2 para o identificador).
Desafio
Como não há informações, escreva um programa completo para gerar uma pasta 2D (veja acima).
Ponto
Isso é código-golfe , então a solução mais curta (em bytes) vence.
code-golf
ascii-art
kolmogorov-complexity
Weedoze
fonte
fonte
Respostas:
Bubblegum, 55 bytes
Provavelmente é possível fazer alguma mágica de remoção de cabeçalho, mas não sou tão bom quanto Dennis!
Experimente online!
fonte
Geléia ,
9275 bytesExperimente online!
Quão?
Etapa 1. Crie uma lista das linhas da metade direita de uma pasta vazia, ignorando os espaços finais:
Etapa 2: transformar isso em uma pasta vazia inteira:
Etapa 3: mostre-me o dinheiro!
fonte
JavaScript (ES6),
187184 bytesQuão?
A saída é criada usando esses 16 padrões exclusivos:
Demo
Mostrar snippet de código
fonte
05AB1E , 80 bytes
Experimente online!
Explicação
O esboço básico da pasta:
05AB1E , 41 bytes
Experimente online!
Explicação da subexplicação (parte um):
Converti o design geral cortando-o ao meio, substituindo todos os caracteres por 2-6 e, finalmente, convertendo-o na base 255 e reconstruindo a forma usando
5
como um delimitador de nova linha.É o número expresso na base 255 e a conversão da base 6 é ...
Então, dividir isso em cinco, espelhar e juntar-se a novas linhas nos leva ...
Explicação da subexplicação (parte dois):
Começando a ver para onde isso está indo? Em seguida, comprimo o padrão interno como uma string base-255:
Qual é:
Converter em binário:
Para cada um desses caracteres, substitua um espaço pelo próximo caractere, iterativamente:
Por fim, substitua os caracteres pelo que deveriam ser.
Pela perda:
Ao compactá-lo como dois padrões separados, economizo 20 bytes:
Qual é:
Convertido em base-10:
92 bytes mais a transliteração, que totalizaria cerca de 105.
fonte
SOGL ,
5857 bytesExplicação:
Experimente aqui!
54 bytes ( competindo? )
O comando usado aqui é
╥
- palendromize, que funcionou apenas em strings, mas também foi documentado para matrizes . (atualmente, ele é implementado apenas no intérprete on-line)Experimente aqui!
fonte
PHP, 117 bytes
Estou triste que não haja nada mais curto que a abordagem preguiçosa - gzip a string e codificada em base64:
Compactação personalizada: 188 bytes
168 164 159 152151 bytes com uma adaptação de ideia officialaimm :As linhas podem ser vistas como um bitmap entre um caractere de limite (espaços para os dois primeiros, canal depois), com espaço como
0
e outro caractere como1
.A inversão das linhas 3 e 8 lhes deu um valor
0
, para que eu pudesse mudar todos os valores em 6 bits.A matriz contém os bitmaps (convertidos na base 34; mas apenas 7 valores - o oitavo elemento é omitido, um elemento vazio também é avaliado
0
). A base 35 também funcionaria; mas a base 33 tem valores mais longos e a base 36 precisaria de mais um valor citado.A sequência contém o limite
0
e os1
caracteres nessa ordem para cada linha (omitindo o último caractere, porque as linhas 3 e 8 não precisam de1
caractere, sem o conjunto de bits).Compactação personalizada por Jörg,
159156 bytes :fonte
Gelatina , 114 bytes
Experimente online!
fonte
Braingolf , 267 bytes
Experimente online!
Tão golfy ...
fonte
/// , 155 bytes
Experimente online!
Adoro quando /// pode competir.
Explicação:
Isso funciona definindo substituições comuns como
$$$$$
e definindo meta-substituições que incluem as substituições originais.Mais profundamente:
Primeiro de tudo, a única característica de /// é que é
/pattern/replacement/
sintaxe e sua capacidade de usar barras invertidas para escapar de outras barras invertidas e barras invertidas. Esta informação é importante na explicação.O primeiro padrão / substituição no código é apenas para fins de golfe (e detalhado aqui ). Ele é substituído
~
por//
, portanto, o código resultante fica assim:Em seguida, são feitas várias substituições básicas. Alguns dependem de outros (meta-substituições), mas a tabela de substituições se parece com isso (código agrupado em
`
s):As meta-substituições aqui são coisas do tipo
/&/%$$/
. Isso pega a substituição já existente$$$
e a utiliza para definir uma nova substituição$$$$$
.Depois vêm as substituições muito grandes. O primeiro substitui
9
por$ $ $ $ $ $
e o segundo substitui8
por:Observe os espaços à direita.
Todas essas substituições são usadas na seguinte sequência:
Para obter a saída desejada.
fonte
Python 2 ,
221 205 197 196193 bytesa="6ZBRS533| $"
eb="70JYF0U7|"
Experimente online!
Explicação:
Cada linha está em uma forma genérica de
pup
ondep
está um caractere de limite e u é uma string com dois caracteres únicos (para cada linha) que podem ser representados por 1 e 0. Por exemplo, a linha 5 é:| $ $ $ $ $ $ $$$ $$$ |
Tem | como caractere de limite e a cadeia do meio contém apenas
e
$
. A cadeia do meio pode ser representada por:111011101101110110111011000111000111111
Agora, essa cadeia binária pode ser representada pelo número de base 36:
6JNFT2RJ
Podemos representar todas as linhas por uma string definitiva, juntamente com a string de 36 bases, o caractere de limite e os caracteres usados na string do meio da seguinte maneira:
Podemos assim descomprimir a string base-36 (depois de extraí-la da string definitiva) para a string binária, substituir 1 e 0 pelos caracteres (também obtidos da string definitiva) usados na string do meio e colar com caracteres de limite nas duas extremidades . Assim, a sequência necessária é obtida.
fonte
C,
415402397 bytesExperimente online!
fonte
Retina ,
140137129 bytes-3 bytes graças a @Neil
Experimente online!
fonte
1
s para mais nada, você não pode escrever$*<space>
diretamente?C (GCC) ,
388386302 bytesExperimente online!
fonte
05AB1E , 121 bytes
Experimente online!
fonte
JavaScript (ES6),
177166 bytesA sequência contém uma coleção dos caracteres a serem exibidos, juntamente com o número de vezes a repetir. Se um caractere não for repetido, o número de vezes poderá ser omitido.
Execuções repetidas de string são otimizadas armazenando nas variáveis
r
es
.Snippet:
fonte
Python 2 , 135 bytes
Experimente online!
fonte
Carvão , 52 bytes
Experimente online! Link é a versão detalhada do código. Explicação:
Imprima a metade esquerda da pasta.
Prepare o cursor para que a string compactada possa ser impressa diretamente após refletir. (Colocar o movimento descendente após a reflexão ou antes da sequência compactada altera seu significado.)
Reflita para completar a pasta.
Imprima a quantidade como uma sequência compactada. (Infelizmente, essa foi a abordagem mais curta, caso contrário,
M
consumiu muitos bytes.)fonte