Nesta fonte pixelizada de letras maiúsculas do alfabeto, todos os caracteres têm 5 unidades de largura e 5 de altura.
███ ████ ███ ████ █████ █████ ████ █ █ █████ █ █ █ █ █ █
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ ██
█████ ████ █ █ █ ████ ████ █ ██ █████ █ █ ███ █ █ █ █
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █ ████ ███ ████ █████ █ ████ █ █ █████ ███ █ █ █████ █ █
█ █ ███ ████ ███ ████ ████ █████ █ █ █ █ █ █ █ █ █ █ █████
██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █ █ █ █ ████ █ █ ████ ███ █ █ █ █ █ █ █ █ █ █ █
█ ██ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █ ███ █ ████ █ █ ████ █ ███ █ █ █ █ █ █ █████
Há também 1 unidade de espaço entre letras e entre linhas, como pode ser visto. Portanto, cada letra pode ocupar até 6 × 6 unidades de espaço.
Suponha que, em vez de usar o caractere de bloco completo ( █
) para formar diretamente as formas das letras, desejássemos usar outras letras na mesma fonte . Isso envolve aumentar as dimensões do texto em seis dobras, para que as letras feitas de blocos completos possam ser usadas como substituições de blocos completos no texto maior.
Se isso não fizesse sentido, espero que este exemplo o faça. Aqui está um A feito de B usando a fonte pixelizada:
████ ████ ████
█ █ █ █ █ █
████ ████ ████
█ █ █ █ █ █
████ ████ ████
████ ████
█ █ █ █
████ ████
█ █ █ █
████ ████
████ ████ ████ ████ ████
█ █ █ █ █ █ █ █ █ █
████ ████ ████ ████ ████
█ █ █ █ █ █ █ █ █ █
████ ████ ████ ████ ████
████ ████
█ █ █ █
████ ████
█ █ █ █
████ ████
████ ████
█ █ █ █
████ ████
█ █ █ █
████ ████
Os B são feitos de blocos completos e o A é feito de B. Observe que os B ainda têm uma unidade entre eles horizontal e verticalmente.
Podemos estender essa idéia usando palavras em vez de apenas letras. Aqui está "ÁGUA" feita de "FOGO":
█████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████ ████ █ ████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █
█████ █████ ████ █████ █████ █████ ████ █████
█ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████
█ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████
█████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████ █████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████ ████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████ █
█████ █████ ████ █████ █████ █████ ████ █████ █████
█ █ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████ ████
█ █ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████ █
█████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████
Observe como "FIRE" aparece repetidamente em cada linha e sempre em ordem, não importa quanto espaço haja entre as letras. Três dos casos mais à direita de "FOGO" foram cortados mais cedo por causa do formato das letras de "ÁGUA".
Essa idéia pode ser expandida ainda mais, usando essas palavras feitas de palavras para fazer palavras feitas de palavras feitas de palavras , ou mesmo palavras feitas de palavras feitas de palavras feitas de palavras . Não há limite teoricamente.
Outro exemplo colocaria essa postagem acima do limite de 30k caracteres, mas você pode ver o que se entende por "palavras feitas de palavras feitas de palavras" executando este bacana Stack Snippet. Apenas deixe os parâmetros no padrão e pressione "Go!". Você deve ver a palavra "CÃO", feita com a palavra "CAT", com a palavra "MOUSE".
Digitar qualquer lista de palavras separadas por espaço que contenha apenas letras maiúsculas na caixa de texto produzirá a primeira palavra feita da segunda palavra feita da terceira, feita da quarta, feita de ... etc.
AVISO: A inserção de mais de 4 ou até 3 palavras produzirá MUITO texto e levará muito tempo. Pode travar seu navegador / computador / carro.
Desafio
O objetivo desse desafio é refletir o que o Snippet de pilha faz com o menor número de caracteres.
Você deve escrever um programa que utilize uma sequência de palavras separada por espaço, contendo apenas letras maiúsculas, e que emita a primeira palavra "composta por" a segunda "composta" pela terceira e assim por diante, usando a fonte pixelizada fornecida acima.
A caixa de seleção "Plain ASCII" e os recursos de tamanho da fonte do snippet não precisam ser suportados no seu programa. Espelhar a transformação de listas de palavras em palavras feitas de palavras é o ponto principal e o único requisito.
Detalhes
A entrada deve vir de stdin, a linha de comando, ou você pode simplesmente escrever uma função que aceita uma string.
Você pode assumir que a entrada é sempre válida, ou seja, uma sequência de palavras compostas por letras maiúsculas, separadas por exatamente um espaço, sem espaços à esquerda ou à direita.
A saída deve ir para stdout (ou alternativa semelhante) ou para um arquivo com o nome de sua escolha.
A saída deve ser composto inteiramente de caracteres vazio-espaciais , os caracteres de espaço total , e novas linhas.
- Os caracteres de espaço vazio / espaço total devem ser espaço e bloco completo (
,
█
) respectivamente, ou ponto e X (.
,X
) respectivamente.
- Os caracteres de espaço vazio / espaço total devem ser espaço e bloco completo (
A saída não deve conter nenhuma coluna inicial que contenha apenas caracteres de espaço vazio , embora seja permitida qualquer combinação de caracteres de espaço vazio à direita em qualquer linha.
Portanto, isso é permitido:
X...X.XXXXX.. X...X.X X.X.X.XXXX.... X.X.X.X.. .X.X..XXXXX..
Mas isso não é:
.X...X.XXXXX.. .X...X.X .X.X.X.XXXX.... .X.X.X.X.. ..X.X..XXXXX..
Não deve haver linhas iniciais ou finais contendo apenas caracteres de espaço vazio . Uma única nova linha à direita é opcionalmente permitida.
Aqui está uma versão mais amigável da fonte:
.XXX.
X...X
XXXXX
X...X
X...X
XXXX.
X...X
XXXX.
X...X
XXXX.
.XXX.
X...X
X....
X...X
.XXX.
XXXX.
X...X
X...X
X...X
XXXX.
XXXXX
X....
XXXX.
X....
XXXXX
XXXXX
X....
XXXX.
X....
X....
.XXXX
X....
X..XX
X...X
.XXXX
X...X
X...X
XXXXX
X...X
X...X
XXXXX
..X..
..X..
..X..
XXXXX
....X
....X
....X
X...X
.XXX.
X...X
X..X.
XXX..
X..X.
X...X
X....
X....
X....
X....
XXXXX
X...X
XX.XX
X.X.X
X...X
X...X
X...X
XX..X
X.X.X
X..XX
X...X
.XXX.
X...X
X...X
X...X
.XXX.
XXXX.
X...X
XXXX.
X....
X....
.XXX.
X...X
X...X
X..XX
.XXXX
XXXX.
X...X
XXXX.
X..X.
X...X
.XXXX
X....
.XXX.
....X
XXXX.
XXXXX
..X..
..X..
..X..
..X..
X...X
X...X
X...X
X...X
.XXX.
X...X
X...X
.X.X.
.X.X.
..X..
X...X
X...X
X.X.X
X.X.X
.X.X.
X...X
.X.X.
..X..
.X.X.
X...X
X...X
.X.X.
..X..
..X..
..X..
XXXXX
...X.
..X..
.X...
XXXXX
Pontuação
Este é o código-golfe, pelo que vence o envio mais curto em bytes . Qualquer instância de um bloco completo ( █
) pode ser contada como 1 byte em vez de 3, para que os envios que usam X
não tenham uma vantagem.
$('#question pre, .answer pre').css('line-height',1)
javascript:
Na barra de URL e colar) para fazer a arte ASCII aqui muito, muito mais fácil de ler:$('#question pre').css('line-height',1)
. Resultado: i.stack.imgur.com/XmB8C.png