O desafio:
Para uma entrada de uma letra X (maiúscula ou minúscula de A a Z) e um dígito N (0-9), imprima a letra correspondente X feita de N * X.
A carta deve ser desta 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
Exemplos:
entrada: a 1
resultado:
AAA
A A
AAAAA
A A
A A
entrada: A 0
resultado: A
entrada: A 2
resultado:
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
saída: o que nunca: não importa
Regras adicionais:
- Os parâmetros de entrada podem ser separados por qualquer caractere que você desejar.
- Cada letra deve usar seu próprio capital como caractere ascii para desenhá-la.
- Espaços à direita, novas linhas etc. são permitidos
- Em vez de um programa, você pode escrever uma função que aceita a sequência de dígitos como argumento. A saída deve ser impressa normalmente.
- Stdout / Stderr não importa, basta escolher uma. Se o material impresso no outro também não importa.
- Os possíveis formatos de saída podem ser impressos em STDOUT, retornados como uma lista de seqüências de caracteres, retornados como uma matriz de caracteres etc., desde que o resultado possa ser simplesmente impresso usando o método de impressão padrão dos idiomas. *
*: como a função f (a, 1) retorna a string e pode-se simplesmente dizer print (f (a, 1)) não faça com que a chamada print () faça parte da resposta. (Isso foi apontado por Kevin Cruijssen e Arnauld).
Ganhando:
Isso é código-golfe, vitórias mais baixas na contagem de bytes. Diverta-se!
Edit : esta questão parece muito idêntica a esta, no entanto, eu diria que não, pois não deve funcionar apenas para H, mas para cada letra do alfabeto. Acho que você decide melhor ou não é uma duplicata.
Respostas:
JavaScript (ES8), 281 bytes
Toma entrada como
(letter)(N)
. Retorna uma string.Experimente online!
Quão?
Codificação de fontes
O padrão armazenado é espelhado na horizontal e na vertical.
Exemplo para 'F':
Algoritmo principal
A função retorna um espaço assim que um pixel em branco é detectado em alguma profundidade ou o caractere correspondente à letra de entrada, se todas as iterações forem bem-sucedidas.
fonte
R , 348 bytes
Experimente online!
Usa uma codificação quase idêntica à de Ouros ; no entanto, ele não reverte os bits, optando por usá-los diretamente.
Em seguida, cria uma matriz 5x5 de bits e constrói a matriz Kronecker Power para gerar o padrão necessário, escrevendo os resultados em stdout.
fonte
Limpo ,
436372 bytesSignificativamente mais curto com o novo formato de E / S.
Experimente online!
Compacta os padrões de letras nos bits de literais inteiros para economizar ~ 700 bytes. Por exemplo
A
:[[' AAA '],['A A'],['AAAAA'],['A A'],['A A']]
[' AAA A AAAAAAA AA A']
['A AA AAAAAAA A AAA ']
em binário ('A' = 1, ' ' = 0
)0b1000110001111111000101110
em decimal18415150
fonte
R , 259 bytes
Experimente online!
A ideia é a seguinte :
Dada esta
5 x 26*5
matriz de0/1
:cada coluna é considerada como número binário e convertida em um número inteiro. Esses números inteiros são então convertidos em ASCII não imprimíveis no intervalo de 1 a 31:
por exemplo, para as colunas da
"B"
sequência final será"\017\021\017\021\017"
(caracteres não imprimíveis escritos em representação octal):Portanto, dada a sequência final de
5*26 = 130
caracteres, convertemos essa sequência novamente na matriz de0/1
uso:então simplesmente subsecretamos a matriz selecionando apenas as 5 primeiras linhas (intToBits retorna 32 bits) e apenas as colunas correspondentes à letra passada como entrada e, finalmente, aplicamos o kronecker, conforme explicado na resposta de @ Giuseppe .
fonte
-48
peça, e uso!
no lugar deU
: experimentá-lo on-line