В этом пиксельном шрифте прописных букв алфавита все символы имеют ширину 5 единиц и высоту 5.
███ ████ ███ ████ █████ █████ ████ █ █ █████ █ █ █ █ █ █
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ ██
█████ ████ █ █ █ ████ ████ █ ██ █████ █ █ ███ █ █ █ █
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █ ████ ███ ████ █████ █ ████ █ █ █████ ███ █ █ █████ █ █
█ █ ███ ████ ███ ████ ████ █████ █ █ █ █ █ █ █ █ █ █ █████
██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █ █ █ █ ████ █ █ ████ ███ █ █ █ █ █ █ █ █ █ █ █
█ ██ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █ ███ █ ████ █ █ ████ █ ███ █ █ █ █ █ █ █████
Как видно, между буквами и между строками есть 1 единица пробела. Таким образом, каждая буква может занимать до 6 × 6 единиц пространства.
Предположим, что вместо использования символа full block ( █
) для непосредственного формирования формы букв мы хотели использовать другие буквы того же шрифта . Это включает в себя увеличение размеров текста в 6 раз, чтобы буквы, сделанные из полных блоков, можно было использовать в качестве замены полных блоков в большом тексте.
Если это не имеет смысла, надеюсь, этот пример будет. Вот A, сделанный из B с использованием пиксельного шрифта:
████ ████ ████
█ █ █ █ █ █
████ ████ ████
█ █ █ █ █ █
████ ████ ████
████ ████
█ █ █ █
████ ████
█ █ █ █
████ ████
████ ████ ████ ████ ████
█ █ █ █ █ █ █ █ █ █
████ ████ ████ ████ ████
█ █ █ █ █ █ █ █ █ █
████ ████ ████ ████ ████
████ ████
█ █ █ █
████ ████
█ █ █ █
████ ████
████ ████
█ █ █ █
████ ████
█ █ █ █
████ ████
B сделаны из полных блоков, а A состоит из B. Обратите внимание, что B все еще имеют одну единицу между ними по горизонтали и вертикали.
Мы можем расширить эту идею, используя слова вместо букв. Вот "ВОДА" из "ОГНЯ":
█████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████ ████ █ ████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █
█████ █████ ████ █████ █████ █████ ████ █████
█ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████
█ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████
█████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████ █████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████ ████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████ █
█████ █████ ████ █████ █████ █████ ████ █████ █████
█ █ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████ ████
█ █ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████ █
█████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████
Обратите внимание, как «ОГОНЬ» появляется несколько раз в каждой строке и всегда в порядке, независимо от того, сколько места находится между буквами. Три из самых правых экземпляров «ОГНЯ» были отключены рано из-за того, как буквы «ВОДЫ» имеют форму.
Эту идею можно расширить еще больше, используя эти слова из слов, чтобы составить слова из слов, из слов или даже из слов, состоящих из слов, составленных из слов . Там нет предела теоретически.
В другом примере этот пост будет превышать ограничение в 30 тыс. Символов, но вы можете увидеть, что подразумевается под «словами, составленными из слов из слов», запустив этот изящный фрагмент стека. Просто оставьте параметры по умолчанию и нажмите «Go!». Вы должны увидеть слово «СОБАКА» из слова «КОШКА» из слова «МЫШЬ».
Ввод любого разделенного пробелами списка слов, содержащих только заглавные буквы в текстовом поле, приведет к получению первого слова, составленного из второго слова, изготовленного из третьего, изготовленного из четвертого, изготовленного из ... и т. Д.
ПРЕДУПРЕЖДЕНИЕ. Ввод более 4 или даже 3 слов приведет к появлению ОЧЕНЬ большого количества текста и займёт ДОЛГОЕ время. Это может привести к сбою вашего браузера / компьютера / автомобиля.
Вызов
Цель этого задания - отразить действия фрагмента стека с наименьшим количеством символов.
Вы должны написать программу, которая принимает строку слов, разделенных пробелами, содержащую только заглавные буквы, и выводит первое слово, «сделанное из», второе, «сделанное из» третьего и т. Д., Используя приведенный выше пиксельный шрифт.
Флажок «Простой ASCII» и функции размера шрифта фрагмента не должны поддерживаться в вашей программе. Зеркальное отражение преобразования списков слов в слова, составленные из слов, является главным и единственным требованием.
Детали
Входные данные должны поступать из стандартного ввода, командной строки, или вы можете просто написать функцию, которая принимает строку.
Вы можете предположить, что ввод всегда действителен, то есть строка слов, состоящая из заглавных букв, разделенных ровно одним пробелом, без начальных или конечных пробелов.
Вывод должен идти в стандартный вывод (или аналогичную альтернативу) или в файл с именем по вашему выбору.
Вывод должен состоять исключительно из символов пробела , пробела и символов новой строки.
- В пустой / полный пробелы должны быть либо пробел и полный блок (
,
█
) соответственно, или период и Х (.
,X
) соответственно.
- В пустой / полный пробелы должны быть либо пробел и полный блок (
Вывод не должен содержать никаких начальных столбцов, содержащих только символы пробела , хотя допускается любая комбинация конечных символов пробела в любых строках.
Так что это разрешено:
X...X.XXXXX.. X...X.X X.X.X.XXXX.... X.X.X.X.. .X.X..XXXXX..
Но это не так:
.X...X.XXXXX.. .X...X.X .X.X.X.XXXX.... .X.X.X.X.. ..X.X..XXXXX..
Не должно быть начальных или конечных строк, содержащих только символы пробела . Один трейлинг-перевод строки разрешен.
Вот более дружественная к строке версия шрифта:
.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
счет
Это код-гольф, поэтому выигрывает самое короткое представление в байтах . Любой экземпляр полного block ( █
) может быть посчитан как 1 байт вместо 3, так что использование, которое использует X
, не имеет преимущества.
$('#question pre, .answer pre').css('line-height',1)
javascript:
В строке URL и вставить его) , чтобы сделать ASCII искусство здесь много, гораздо легче читать:$('#question pre').css('line-height',1)
. Результат: i.stack.imgur.com/XmB8C.png