Вызов
Нарисуйте логотип Олимпийских игр ...
... как персонаж (например, ASCII) искусство!
Пример вывода
* * * * * * * * *
* * * * * *
* * * * * *
* * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * *
* * * *
* * * *
* * * * * *
Ваше искусство не должно выглядеть точно так же, как мое, но оно должно представлять олимпийские кольца достаточно хорошо, чтобы их можно было узнать.
правила
- Программа должна записать картинку на консоль.
- Самый короткий код (в байтах, на любом языке) выигрывает.
- Решение, которое печатает кольца в их соответствующих цветах (или близкое представление), получит бонус минус двадцать очков.
Победитель будет выбран в феврале 23 - го в конце зимней Олимпиады 2014 года.
Победители
- Золото : Маринус - APL, 62 очка
- Серебро : Ayiko - Perl 6, 75 очков
Бронза : Эвес - Питон, 107 очков
Популярный выбор : Данко Дурбич - Commodore 64 BASIC
Ответы:
APL (82) (-20 = 62)
Изменить: для разнообразия, эта программа достаточно проста, чтобы TryAPL коснулся ее, поэтому вы можете запустить ее там (просто вставьте строку в).
Не уверен, что смогу претендовать на бит цвета, я представляю их все по-разному.
Консоль APL не поддерживает цвет, поэтому я использовал заштрихованные блочные символы (назначение любого другого вида ASCII-кода было бы так же просто, как замена символов в начале строки.)
Они должны выглядеть как непрерывные круги (в зависимости от вашего шрифта.)
Или же:
источник
Коммодор 64 Бейсик
Запись прямо на экран и в цветную память.
Выход:
Вот как вы делаете это со спрайтами.
источник
HTML Fiddle -
48,35, 33 символа (спасибо @Dom и @cnst!)Выход:
источник
OOO<div style="margin:-10px 5px">OO
вместо этого (хотя я думаю, что это должен быть блок, следовательно, отсюда<div/>
)div
, можете просто использоватьp
вместо этого!BASH в цвете - 271 - 20 = 251 - с запутанными кольцами; P
Результат:
И для прикола одно: 61 - 20 = 41.
Версия LZ77:
источник
bash: !/\\e[3}": event not found
:(x='54mO53m_50m052m_51mO\n53m U 52mU\n';printf "${x//5/\\e[3}"
- (Я немного зла с 5 здесь.) Или даже это могло бы быть лучше, имея в виду пересечение:x='54mO53mA50m052mA51mO\n53m U 52mU\n';printf "${x//5/\\e[3}"
- хотя это может выглядеть более грязно, чем другие.Синклер Бейсик на ZX Spectrum 48K (261 байт)
БАЗОВЫЙ листинг:
Конечный результат:
Запуск программы и измерение кода:
БЕЙСИК листинг в текстовом формате:
Файл TAP с программой, подходящий для эмуляторов или реальной машины с использованием DivIDE или DivMMC: http://www.zxprojects.com/images/stories/draw_the_olympics_flag.tap
источник
Так что я на самом деле не читал правильно, это ASCII-art, так что я думаю, что это неверно. К сожалению!
HTML 121 (141 - 20)
В Chrome:
PHP 103 (123 - 20)
источник
#06f
желтый:,#fa0
зеленый:#193
Рубин: 198 символов - 20 = 178
(Обратите внимание, что
^[
это отдельные символы.)Образец прогона:
источник
Mathematica - 185
Вот выход
Еще одна версия, основанная на растеризации векторной графики
источник
PostScript, 203 (-20 = 183)
Я утверждаю, что это считается «искусством ASCII», хотя и не записывает в консоль. Выход:
Это может быть в гольф немного больше.
источник
Командный скрипт Windows - 112
процентовбайтовИ конечно же, обязательная чит-версия - 4 байта
сохранен как:
источник
Еще одна попытка в Perl,
130120Спасибо Manatwork за помощь в этом
Выход:
источник
for
вместоforeach
; 2 символа, удалив(
… аргументы)
раундаsprintf()
; 2 символа путем удаленияhex
параметра '; 1 символ с использованиемy///
вместоtr///
; 1 персонаж, удалив финал;
.y///
раньше. Сейчас пойду и посмотрю.Питон:
157140138133122107 символов107
(благодаря манату )
образец вывода:
157
122
(только начал этот, я постараюсь улучшить его)
с лучшим выводом: 120 символов
образец вывода:
источник
print'\n'.join(['{0:b}'.format(int(o,36)).rjust(39,'0')for o in"kpvbkq0 1re099tu 3ifszg1t 3iwiuayp 1re099tu kpvbkq0 httbls 5trxmo".split()])
. Что касается версии с «лучшим выводом», то здесь вы можете оставитьrjust()
второй параметр. (И вставьте «t» в заголовок этого поста.)bin()
. Но почему вы используетеstr()
это?bin()
возвращаемое значение ужеstr
.010000010100000101000101000001010000010
? Два нижних кольца кажутся мне немного сломанными.Perl,
177163Улучшенная версия благодаря Dom Hastings:
Выход:
источник
"\n"
as$r
вы можете использовать по$/
умолчанию"\n"
, буквальные переводы строк могут даже сэкономить вам больше в нескольких местах. Вы также можете сохранить еще 1 символ, используя$s=$"x3
вместо$s=" "
. Надеюсь, это поможет!C 257 байт
Это могло бы быть в гольф немного больше.
Это должно выполняться на Tektronix 4010 (или на эмуляторе, таком как xterm -t). Выход:
Это действительно ASCII-искусство, так как это все "." персонажи. И это делает вывод на консоль, как и просили. Некоторые эмуляторы Tektronix поддерживают цвет. Мой не сделал, поэтому я не мог этого сделать.
источник
Ява,
181179161156 байт(Не компилируется на jdk 1.7, требуется 1.6 или ниже)
Выход:
Определенно не победитель, но давай, это Java .
источник
replaceAll()
«s регулярное выражение и положить обратно всю согласованную часть:replaceAll(".{29}","$0\n")
. (В конце вашего файла может быть дополнительный разрыв строки, так как в размещенном коде я считаю только 181 символ.)import
и поместите имя пакета прямо в вызове конструктора. Это уменьшает размер до 161 символа.class M{static{...
наenum M{M;{...
. Следующий большой шаг - избавление от BigInteger, возможно ли это? Я пытаюсь творить чудеса с String.format, но пока не дал результатов.Хаскелл, 200
Выход:
в гольф из:
источник
map.map
потому что это звучит смешно. : DРуби, 9
#сатира
Правила допускают искусство, которое не совсем похоже на пример, но оно должно «представлять олимпийские кольца достаточно хорошо, чтобы их можно было узнать» .
Вы можете узнать это изображение логотипа Олимпийских игр.
источник
Javascript - 170
185189символовВыход:
2-й Javascript - 25 символов
Выход:
Второй ленивый
источник
split()
параметра; 2 символа, удалив последние 2;
с.'kpvbkq041re099tu43ifszg1t43iwiuayp41sdk52824kpvbkq04httbls45trxmo'.split(4).map(x=>{a=parseInt(x,36).toString(2);console.log(' '.repeat(39-a.length)+a.replace(/0/g,' '))})
.Binary! (265 CHARS)
Он слишком велик, чтобы выиграть, но, по крайней мере, выглядит круто!
источник
PHP - 99 (-20?)
Это определенно узнаваемо. Я говорю, что мои "цвета" считаются; это близкое представление.
Если вам это не нравится, то вот
GolfScript - 101 (-20?)
источник
header("Content-Type: text/plain")
, по умолчанию для веб-серверов используется текст / htmlBash + ImageMagick: 163 символа
Образец вывода:
источник
Perl 6:
1127756 символов, 75 байтов.comb
дает список отдельных символов в строке (в любом случае без аргумента).ord
дает кодовый номер символа от символа.base(2)
возвращает строку с кодировкой base-2 этого Int.trans
заменяет цифры пробелом и @ для лучшей видимостиflip
переворачивает символы строки, чтобы отсутствующие начальные 0 не испортили рисунок.edit2: более новое решение с использованием слов qwote и кодировки base-36
<ABC DEF GHI>
синтаксис цитат-слов в perl6, так что вы получите список строк:36($_)
создает Int из строки в кодировке base-36 в$_
(for
переменная по умолчанию цикла)редактировать: старое решение имеет более хороший (скопированный) рисунок, но длиннее:
источник
Mathematica
18517510 байтов, сохраненных mathe.
Кольца ниже - ASCII 'O's.
Буква «O», слегка полупрозрачная, в Century Gothic, напечатана 5 раз с размером шрифта = 145 точек печати.
Это не терминальное искусство. Однако это полностью удовлетворяет определению искусства Ascii в Википедии: http://en.wikipedia.org/wiki/ASCII_art .
источник
FontSize ->
могут быть удалены.FontSize -> 145
на145
.JavaScript: 153 символа
Я хотел посмотреть, смогу ли я сделать это быстрее, используя алгебру для построения графиков окружностей:
(
c
представляет собой массив из пяти (x, y) пар, центры окружностей, сплющенные для сохранения десяти символов.)выход:
159 символов немного читабельнее:
выход:
В 167 символах у нас есть «цвета»:
выход:
И с 189 символами я могу также настроить радиус
r
:http://jsfiddle.net/mblase75/5Q6BX/
источник
APL, 8 символов / байт *
Вот ответ, подталкивающий к низкому количеству символов (в конце концов, это кодовый гольф)
Выход:
Символ ○, оператор круга APL. Вместо этого вы можете поставить 'O', если вы хотите получить строго ASCII-вывод. Я просто подумал, что можно использовать символ APL.
Просто для удовольствия, вот цветная версия (37 символов - 20 = 17 баллов)
Вывод: ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
*: APL может быть записан в своей собственной (устаревшей) однобайтовой кодировке, которая отображает символы APL в верхние 128-байтовые значения. Следовательно, для целей оценки программа из N символов, в которой используются только символы ASCII и символы APL, может рассматриваться как длина N байтов.
источник
CSS,
1176+922855771 байт, -20 бонус цвета = 751Только CSS, разметка не требуется. Смотрите скрипту без разметки здесь: http://jsfiddle.net/XcBMV/12/
По цвету и с правильным перекрытием.
источник
Perl - 12 символов
Хорошо, так что это не особенно художественный рендеринг. ;-)
Слегка симпатичнее:
источник
Сборка ГАЗ 16-битный BIOS OL загрузчик - 617 - 20 = 597
Схожу с ума по длине здесь, просто ради удовольствия.
Он не сильно загружается, но загружает логотип Олимпийских игр в цвет ASCII;)
Код:
(Linux) Сборка и распаковка образа MBR
Работает в эмуляторе
(Еще не проверял это на моем домашнем компьютере ...)
Результат
источник
TI-Basic (16 байт)
Примечание: TI-Basic является токенизированным. Если я правильно помню,
ClrHome
иDisp
это один байт маркеров.источник
источник