Соревнование:
Для ввода одной буквы X (верхнего или нижнего регистра от A до Z) и одной цифры N (0-9) выведите соответствующую букву X из N * X.
Письмо должно быть из этого списка:
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
Примеры:
вход: 1
выход:
AAA
A A
AAAAA
A A
A A
вход: A 0
выход: A
вход: A 2
выход:
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
вход: А -1
выход: что когда-либо: это не имеет значения
Дополнительные правила:
- Входные параметры могут быть разделены тем символом, который вы хотите.
- Каждая буква должна использовать заглавную букву как символ ascii, чтобы нарисовать ее.
- Разрешены пробелы, новые строки и т. Д.
- Вместо программы вы можете написать функцию, которая принимает цифровую строку в качестве аргумента. Вывод должен быть напечатан нормально.
- Stdout / Stderr не имеет значения, просто выберите один. Если материал напечатан на другом, тоже не имеет значения.
- Возможные форматы вывода могут быть распечатаны в STDOUT, возвращены в виде списка строк, возвращены в виде символьной матрицы и т. Д., Если результат можно просто распечатать, используя метод печати по умолчанию для языков. *
*: подобно функции f (a, 1) возвращает строку, и можно просто сказать, что print (f (a, 1)) не делает вызов print () частью ответа. (На это указывали Кевин Круйссен и Арно).
Выигрыш:
Это код-гольф, побеждает наименьшее количество байтов. Веселиться!
Edit : этот вопрос кажется очень идентичен с этим , однако я бы сказал , что это не так , как она должна работать не только для H , но для каждой буквы из алфавита .. Думаю , вы решите , а или не является дубликатом.
Ответы:
JavaScript (ES8), 281 байт
Принимает вход как
(letter)(N)
. Возвращает строку.Попробуйте онлайн!
Как?
Шрифтовая кодировка
Сохраненный шаблон зеркально отражается как по горизонтали, так и по вертикали.
Пример для 'F':
Основной алгоритм
Функция возвращает пробел, как только на некоторой глубине обнаруживается пустой пиксель, или символ, соответствующий вводимой букве, если все итерации выполнены успешно.
источник
R , 348 байт
Попробуйте онлайн!
Использует кодировку, почти идентичную кодировке Ouros ; однако, он не инвертирует биты, а предпочитает использовать их напрямую.
Затем он создает матрицу битов 5x5 и строит матрицу мощности Кронекера для генерации необходимого шаблона, записывая результаты в стандартный вывод.
источник
Чисто ,
436372 байтаЗначительно короче с новым форматом ввода-вывода.
Попробуйте онлайн!
Сжатие буквенных шаблонов в биты целочисленных литералов для сохранения ~ 700 байтов. Например,
A
:[[' AAA '],['A A'],['AAAAA'],['A A'],['A A']]
[' AAA A AAAAAAA AA A']
['A AA AAAAAAA A AAA ']
в бинарный ('A' = 1, ' ' = 0
)0b1000110001111111000101110
в десятичную18415150
источник
R , 259 байт
Попробуйте онлайн!
Идея заключается в следующем:
Учитывая эту
5 x 26*5
матрицу0/1
:каждый столбец считается двоичным числом и преобразуется в целое число. Эти целые числа затем преобразуются в непечатаемые ASCII в диапазоне 1 ... 31:
Например, для столбцов
"B"
конечная строка будет"\017\021\017\021\017"
(непечатаемые символы записаны в восьмеричном представлении):Следовательно, учитывая последнюю строку
5*26 = 130
символов, мы конвертируем эту строку обратно в матрицу0/1
использования:затем мы просто подразделяем матрицу, выбирая только первые 5 строк (intToBits возвращает 32 бита) и только столбцы, соответствующие букве, переданной в качестве ввода, и, наконец, применяем kronecker, как объяснено в ответе @ Giuseppe .
источник
-48
кусок, и использовать!
вместоU
: попробуйте онлайн