En esta fuente pixelada de letras mayúsculas del alfabeto, todos los caracteres tienen 5 unidades de ancho y 5 de alto.
███ ████ ███ ████ █████ █████ ████ █ █ █████ █ █ █ █ █ █
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ ██
█████ ████ █ █ █ ████ ████ █ ██ █████ █ █ ███ █ █ █ █
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █ ████ ███ ████ █████ █ ████ █ █ █████ ███ █ █ █████ █ █
█ █ ███ ████ ███ ████ ████ █████ █ █ █ █ █ █ █ █ █ █ █████
██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █ █ █ █ ████ █ █ ████ ███ █ █ █ █ █ █ █ █ █ █ █
█ ██ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █ ███ █ ████ █ █ ████ █ ███ █ █ █ █ █ █ █████
También hay 1 unidad de espacio entre letras y entre líneas, como se puede ver. Por lo tanto, cada letra puede ocupar hasta 6 × 6 unidades de espacio.
Supongamos que en lugar de usar el carácter de bloque completo (█
) para formar directamente las formas de las letras, deseamos utilizar otras letras en la misma fuente . Esto implica aumentar las dimensiones del texto 6 veces para que las letras hechas de bloques completos se puedan usar como reemplazos de bloques completos en el texto más grande.
Si eso no tiene sentido, espero que este ejemplo lo haga. Aquí hay una A hecha de B usando la fuente pixelada:
████ ████ ████
█ █ █ █ █ █
████ ████ ████
█ █ █ █ █ █
████ ████ ████
████ ████
█ █ █ █
████ ████
█ █ █ █
████ ████
████ ████ ████ ████ ████
█ █ █ █ █ █ █ █ █ █
████ ████ ████ ████ ████
█ █ █ █ █ █ █ █ █ █
████ ████ ████ ████ ████
████ ████
█ █ █ █
████ ████
█ █ █ █
████ ████
████ ████
█ █ █ █
████ ████
█ █ █ █
████ ████
Las B están hechas de bloques completos y la A está hecha de B. Observe que las B todavía tienen una unidad entre ellas horizontal y verticalmente.
Podemos extender esta idea usando palabras en lugar de solo letras. Aquí está "AGUA" hecha de "FUEGO":
█████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████ ████ █ ████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █
█████ █████ ████ █████ █████ █████ ████ █████
█ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████
█ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████
█████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████ █████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████ ████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████ █
█████ █████ ████ █████ █████ █████ ████ █████ █████
█ █ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████ ████
█ █ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████ █
█████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████
Observe cómo aparece "FUEGO" repetidamente en cada línea, y siempre en orden, sin importar cuánto espacio haya entre las letras. Tres de los casos más correctos de "FUEGO" se cortaron temprano debido a la forma en que se forman las letras de "AGUA".
Esta idea se puede ampliar aún más, usando estas palabras hechas de palabras para hacer palabras hechas de palabras hechas de palabras , o incluso palabras hechas de palabras hechas de palabras hechas de palabras . No hay límite teóricamente.
Otro ejemplo pondría esta publicación por encima del límite de 30k caracteres, pero puede ver lo que se entiende por "palabras hechas de palabras hechas de palabras" ejecutando este ingenioso fragmento de pila. Simplemente deje los parámetros en sus valores predeterminados y presione "Ir". Debería ver la palabra "PERRO" hecha de la palabra "GATO" hecha de la palabra "RATÓN".
Escribir cualquier lista de palabras separadas por espacios que contengan solo letras mayúsculas en el cuadro de texto, se producirá la primera palabra hecha de la segunda palabra hecha de la tercera, hecha de la cuarta, hecha de ... etc.
ADVERTENCIA: Ingresar más de 4 o incluso 3 palabras producirá MUCHO texto y TOMARÁ MUCHO tiempo. Puede bloquear su navegador / computadora / automóvil.
Desafío
El objetivo de este desafío es reflejar lo que hace el Fragmento de pila en la menor cantidad de personajes.
Debe escribir un programa que tome una cadena de palabras separadas por espacios que contengan solo letras mayúsculas, y genere la primera palabra "hecha de" la segunda "hecha de" la tercera y así sucesivamente, utilizando la fuente pixelada dada anteriormente.
La casilla de verificación "ASCII simple" y las características de tamaño de fuente del fragmento no necesitan ser compatibles con su programa. Reflejar la transformación de listas de palabras a palabras hechas de palabras es el punto principal y el único requisito.
Detalles
La entrada debe provenir de stdin, la línea de comando, o simplemente puede escribir una función que tome una cadena.
Puede suponer que la entrada siempre es válida, es decir, una cadena de palabras hechas con mayúsculas, separadas exactamente por un espacio, sin espacios iniciales ni finales.
La salida debe ir a stdout (o una alternativa similar) o a un archivo con el nombre de su elección.
La salida debe consistir enteramente en caracteres de espacio vacío , caracteres de espacio completo , y saltos de línea.
- Los caracteres vacíos / de espacio completo deben ser espacio y bloque completo (
,
█
) respectivamente, o punto y X (.
,X
) respectivamente.
- Los caracteres vacíos / de espacio completo deben ser espacio y bloque completo (
La salida no debe contener ninguna columna inicial que contenga solo caracteres de espacio vacío , aunque se permite cualquier combinación de caracteres finales de espacio vacío en cualquier línea.
Entonces esto está permitido:
X...X.XXXXX.. X...X.X X.X.X.XXXX.... X.X.X.X.. .X.X..XXXXX..
Pero esto no es:
.X...X.XXXXX.. .X...X.X .X.X.X.XXXX.... .X.X.X.X.. ..X.X..XXXXX..
No debe haber filas iniciales o finales que contengan solo caracteres de espacio vacío . Opcionalmente, se permite una nueva línea final.
Aquí hay una versión de la fuente más amigable con las cadenas:
.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
Puntuación
Este es el código de golf, por lo que gana el envío más corto en bytes . Cualquier instancia de un bloque completo ( █
) se puede contar como 1 byte en lugar de 3, por lo que los envíos que se usan X
no tienen una ventaja.
$('#question pre, .answer pre').css('line-height',1)
javascript:
En la barra de URL y pegarlo) para hacer que el arte ASCII aquí mucho, mucho más fácil de leer:$('#question pre').css('line-height',1)
. Resultado: i.stack.imgur.com/XmB8C.png