El reto:
Para una entrada de una letra X (mayúsculas o minúsculas de la A a la Z) y un dígito N (0-9) imprima la letra X correspondiente hecha de N * X.
La carta tiene que ser de esta lista:
AAA BBBB CCCC DDDD EEEEE FFFFF GGG H H
A A B B C D D E F G H H
AAAAA BBBB C D D EEEE FFFF G GG HHHHH
A A B B C D D E F G G H H
A A BBBB CCCC DDDD EEEEE F GGG H H
IIIII J K K L M M N N OOO
I J K K L MM MM NN N O O
I J KKK L M M M N N N O O
I J J K K L M M N NN O O
IIIII JJJ K K LLLLL M M N N OOO
PPPP QQQ RRRR SSSS TTTTT U U V V W W
P P Q Q R R S T U U V V W W
PPPP Q Q RRRR SSS T U U V V W W
P Q QQ R R S T U U V V W W W
P QQQQ R R SSSS T UUU V W W
X X Y Y ZZZZZ
X X Y Y Z
X Y Z
X X Y Z
X X Y ZZZZZ
Ejemplos:
entrada: un 1
salida:
AAA
A A
AAAAA
A A
A A
entrada: A 0
salida: A
entrada: A 2
salida:
AAA AAA AAA
A AA AA A
AAAAAAAAAAAAAAA
A AA AA A
A AA AA A
AAA AAA
A A A A
AAAAA AAAAA
A A A A
A A A A
AAA AAA AAA AAA AAA
A AA AA AA AA A
AAAAAAAAAAAAAAAAAAAAAAAAA
A AA AA AA AA A
A AA AA AA AA A
AAA AAA
A A A A
AAAAA AAAAA
A A A A
A A A A
AAA AAA
A A A A
AAAAA AAAAA
A A A A
A A A A
entrada: A -1
salida: lo que sea: no importa
Reglas Adicionales:
- Los parámetros de entrada se pueden separar por el carácter que desee.
- Cada letra debe usar la capital de sí misma como carácter ascii para dibujarla.
- Se permiten espacios finales, nuevas líneas, etc.
- En lugar de un programa, puede escribir una función que tome la cadena de dígitos como argumento. La salida debe imprimirse normalmente.
- Stdout / Stderr no importa, solo elige uno. Si las cosas impresas en el otro tampoco importan.
- Los posibles formatos de salida pueden imprimirse en STDOUT, devolverse como una lista de cadenas, devolverse como una matriz de caracteres, etc. siempre que el resultado pueda imprimirse simplemente utilizando el método de impresión predeterminado de los idiomas. *
*: al igual que la función f (a, 1) devuelve la cadena y uno simplemente puede decir que print (f (a, 1)) no hace que la llamada print () forme parte de la respuesta. (Esto fue señalado por Kevin Cruijssen y Arnauld).
Victorioso:
Este es el código de golf, el menor recuento de bytes gana. ¡Que te diviertas!
Editar : esta pregunta parece muy idéntica a esta, sin embargo, diría que no lo es, ya que no solo debería funcionar para H sino para cada letra del alfabeto ... Supongo que decides más bien o no es un duplicado.
Respuestas:
JavaScript (ES8), 281 bytes
Toma entrada como
(letter)(N)
. Devuelve una cadena.Pruébalo en línea!
¿Cómo?
Codificación de fuente
El patrón que se almacena se refleja tanto horizontal como verticalmente.
Ejemplo para 'F':
Algoritmo principal
La función devuelve un espacio tan pronto como se detecta un píxel en blanco a cierta profundidad, o el carácter correspondiente a la letra de entrada si todas las iteraciones son exitosas.
fuente
R , 348 bytes
Pruébalo en línea!
Utiliza una codificación casi idéntica a la de Ouros ; sin embargo, no invierte los bits, sino que opta por usarlos directamente.
Luego crea una matriz de bits 5x5 y construye la matriz de Kronecker Power para generar el patrón necesario, escribiendo los resultados en stdout.
fuente
limpia ,
436372 bytesSignificativamente más corto con el nuevo formato IO.
Pruébalo en línea!
Comprime los patrones de letras en los bits de literales enteros para guardar ~ 700 bytes. Por ejemplo,
A
:[[' AAA '],['A A'],['AAAAA'],['A A'],['A A']]
[' AAA A AAAAAAA AA A']
['A AA AAAAAAA A AAA ']
en binario ('A' = 1, ' ' = 0
)0b1000110001111111000101110
en decimal18415150
fuente
R , 259 bytes
Pruébalo en línea!
La idea es la siguiente :
Dada esta
5 x 26*5
matriz de0/1
:cada columna se considera como un número binario y se convierte en un número entero. Estos enteros se convierten en ASCII no imprimible en el rango 1 ... 31:
por ejemplo, las columnas de
"B"
la cadena final serán"\017\021\017\021\017"
(caracteres no imprimibles escritos en representación octal):Por lo tanto, dada la cadena final de
5*26 = 130
caracteres, convertimos esa cadena de nuevo a la matriz de0/1
uso:luego simplemente subdividimos la matriz seleccionando solo las primeras 5 filas (intToBits devuelve 32 bits) y solo las columnas correspondientes a la letra pasada como entrada y finalmente aplicamos kronecker como se explica en la respuesta de @ Giuseppe .
fuente
-48
pieza y usarla!
en lugar deU
: pruébelo en línea