Разве вы не находите, что чтение простого текста недостаточно привлекательно? Попробуйте наш
##### ### ### ##### ##### ##### ##### # # ##### #
# # # # # # # # # # # # #
##### ### # # # # #### # # #
# # # # # # # # # # # #
# # ### ### ##### ##### # ##### # # # #
Намного больше фантазии, не так ли? Но писать вручную довольно долго, было бы замечательно, если бы кто-то сделал программу, которая делает это для меня!
Ваша задача , если вы добровольно поможете мне, будет написать программу или функцию, которая принимает только строку [a-zA-Z\s\n]
, и выводит (или возвращает) запись ascii этого!
Вы должны использовать следующий алфавит для форматирования вывода:
##### #### ### #### ##### ##### ### # # ##### ##### # # # # #
# # # # # # # # # # # # # # # # # # ## ##
##### #### # # # #### #### # ## ##### # # ### # # # #
# # # # # # # # # # # # # # # # # # # # # #
# # #### ### #### ##### # ### # # ##### ### # # ##### # #
# # ### #### ### #### ### ##### # # # # # # # # # # #####
## # # # # # # # # # # # # # # # # # # # # # #
# # # # # #### # # #### ### # # # # # # # # # # #
# ## # # # # ## ## # # # # # # ## ## # # # #
# # ### # #### # # ### # ### # # # # # # #####
Космос:
|
| it's a 5x5 square of spaces
| but had to pad it with |s to make it appear in this post
|
|
Поскольку это шрифт с фиксированной шириной, символ пробела также окружен пробелами, в результате чего между двумя буквами образуется пространство шириной 7.
a b
1234567 -- these numbers are just for the example, you don't have to output them
##### ####
# # # #
##### ####
# # # #
# # ####
a b
1234567890123
##### ####
# # # #
##### ####
# # # #
# # ####
Когда вы встречаете новую строку, как на входе
ascii
text
Просто убедитесь, что два блока текста разделены хотя бы одной пустой строкой.
##### ### ### ##### #####
# # # # # # #
##### ### # # #
# # # # # # #
# # ### ### ##### #####
##### ##### # # #####
# # # # #
# #### # #
# # # # #
# ##### # # #
Кроме того, вам разрешено заменять #
s любым другим символом, если он находится в диапазоне ASCII для печати и не является пробелами. Например, вы можете использовать A
s для буквы A, B
для буквы B и так далее.
Поскольку это код-гольф (и, кроме того, колмогоровская сложность ), выигрышная заявка будет той, которая решит эту задачу за наименьший байт, получайте удовольствие!
источник
Ответы:
Python 3, 375 байт
Смотрите этот код работает на ideone.com.
Тот же код, но как-то приятно с отступом, отформатирован и прокомментирован:
Я также решил использовать базовую кодировку 36, поскольку это
int()
встроенная поддержка самого высокого базового уровня Python . Вот короткий скрипт Python 3, который я написал (не разыграл), который преобразует определения шрифтов, как в вопросе, в базовые 36 кодов: Мой конвертер на ideone.comРезультат состоит из символа
1
как разрешенного пикселя и пробелакак отключенного пикселя. Вот один пример запуска:
Вход (перевод строки как
\n
):Выход:
источник
Clojure, 552 байта
Каждая буква в ascii представляется в виде двоичной строки с # - 1, пробелом - 0. Затем она преобразуется в базу 36, так что для хранения + ":" требуется всего 5 символов, чтобы Clojure знала, что ее следует рассматривать как символ. Затем ввод разделяется по символу новой строки, и для каждой строки мы конвертируем букву из 36 базовых обратно в двоичную и получаем первые [0: 5] символы, добавляем символы новой строки, получаем следующие [5:10] символы и так далее.
Вы можете увидеть это работает здесь - https://ideone.com/y99ST5
источник
SOGL , 137 байт (не конкурирует)
Объяснение:
примечание: в настоящее время этот язык не может принимать многострочную строку ввода, поэтому я попросил ввести число и прочитал следующие x строк в качестве ввода.
Первая строка
сжатый с помощью пользовательского словаря, который использует "" и "-" (сжатие имеет специальный режим с доступным "\ n - | / _", поэтому еще большее сжатие!).
Он содержит 25 символов на символ ascii в порядке алфавита. они заказаны сверху вниз, затем справа.
символы идут как
и это так же, как
┼
добавляет их в массив.источник
foo\nbar
для многострочных вводовPowershell,
261253 байтаТестовый скрипт:
Выход:
Замечания:
$s|% *per|% t*y
это ярлык для$s|% toUpper|% toCharArray
О космосе:
Для каждого символа исходной строки сценарий берет символ (битовую маску) из магической строки
'_ONO__NQ...'
. Тем не менее, индекс выходит за рамки магической строки для пробела. В этом случае битовая маска$c
становится пустой. Это означает ноль для всех битов.О пустой строке:
Сценарий отображает 6 строк для каждого символа вместо 5. Индекс выходит за пределы магической строки и для пустой строки. Итак, строка 6 содержит только пробелы.
Лучше всего, если вы напечатаете другой символ вместо пробела. Например
·
.источник
C (gcc) , 326 байт
Первый удар в это. Пришлось включать stdio.h и string.h на TIO, но не нужно с MinGW.
Попробуйте онлайн!
источник
JavaScript (ES6),
292287278 байтдемонстрация
Показать фрагмент кода
источник