Эта задача представляет собой вырезанную пасту из Enlarge ASCII art , но ее можно изменить , используя PetSCII на основе половинного блока символов:
string=" ▝▘▀▗▐▚▜▖▞▌▛▄▟▙█"
Таким образом, цель состоит в том, чтобы уменьшить 1/2
помощью ascii-art . Например, из строки:
OOOOOO OOOOOO OOOOOO OOOOOOO OOOOOO OOOOOO OO OOOOOOO
OO OO OO OO OO OO OO OO OO OO OO
OO OO OO OO OO OOOOO OO OOO OO OO OO OOOOO
OO OO OO OO OO OO OO OO OO OO OO OO
OOOOOO OOOOOO OOOOOO OOOOOOO OOOOOO OOOOOO OOOOOOO OO
Вы должны сделать:
▟▀▀▘▟▀▀▙▐▛▀▙▐▛▀▀ ▗▛▀▀ ▟▀▀▙▐▌ ▐▛▀▀
█ █ █▐▌ █▐▛▀ ▐▌ ▜▌█ █▐▌ ▐▛▀
▝▀▀▘▝▀▀▘▝▀▀▘▝▀▀▀ ▀▀▀ ▝▀▀▘▝▀▀▀▝▘
(или даже:
▗▛▀▀▗▛▀▜▖█▀▜▖█▀▀▘ ▟▀▀▘▗▛▀▜▖█ █▀▀▘
▐▌ ▐▌ ▐▌█ ▐▌█▀▘ █ ▝█▐▌ ▐▌█ █▀▘
▀▀▀ ▀▀▀ ▀▀▀ ▀▀▀▘ ▝▀▀▘ ▀▀▀ ▀▀▀▘▀
;-)
или где трубопровод:
wget -O - https://codegolf.stackexchange.com/q/19123/9424 |
sed -ne '/<pre><code>/,/<\/code><\/pre>/{//{/\//q};s/<pre><code>//;p}'
('l2v2l6v2'+ 'e1l1v3l2'+
'v3e1v7e1v7e1v7e1l2v6e1l4v5'+
'e1l6v4e1l8v3e1l7l3v2e1l9l3v1')
.replace(/[lve]\d/g,function
(c){return Array(-~c[1]).
join({l:' ',v:'Love'
,e:'\n'}[c[0
]])})
мог бы дать:
▗▟█████▙▟█████▄
▜█████████████▛▘
▝▀███▙▛█████▀
▝▀▜██▀▘
Некоторые образцы:
С (примерно) такими же правилами:
- Ввод из STDIN или файла
- Каждый подчиненный символ должен быть представлен, только пробелы должны оставаться пустыми .
- Это тоже код-гольф , так что выиграл самый низкий балл. Оценка рассчитывается как:
+1
по символам, для подсчета в символах, а не в байтах, т.е.:s=' ▝▘▀▗▐▚▜▖▞▌▛▄▟▙█'
считать 20 символов, а не 52 !!-10
для объяснения;+20
для использования внешнего инструмента шрифта или библиотеки.
xterm -xrm 'XTerm*renderFont:false' &
чтобы открыть окно консоли, способное отобразить это правильно.Ответы:
GolfScript (90 символов)
Многое из этого идет на обработку рваных массивов. Неприятный тестовый кейс:
содержит 3 разных сетки 2х2, и только в одной из 4 ячеек содержится какой-либо персонаж.
Что еще хуже,
zip
транспонирование для разделения столбцов на пары дает одинаковый результат для["xx" "xxx"]zip
и["xxx" "xx"]zip
. Поэтому я начинаю с дополнения, чтобы убедиться, что все строки имеют одинаковую четную длину и что имеется четное количество строк.Обратите внимание, что эта программа предполагает, что интерпретатор будет обрабатывать «█» как строку длиной 48, хотя согласно инструкциям в вопросе я считаю это 16 символами плюс разделители.
Я проверил это в меру своих возможностей, но не могу найти моноширинный шрифт, который на самом деле правильно отображает эти символы.
источник
zip
рваные массивы, и я весьма удивлен тем, что он делает, например["##" "###"]
. Я собираюсь переосмыслить свой подход.Perl 6 , 159 символов (192 байта)
Попробуйте онлайн!
источник
Баш (203 символа)
или
источник
Perl (268 символов)
или
источник