Работа с цветами в языках без разметки часто усложняет ситуацию. Я хотел бы увидеть некоторые варианты использования цвета на разных языках.
Цель этого конкурса - вывести «Hello World» в семи цветах радуги.
Согласно Википедии, это 7 цветов.
Red #FF0000 (RGB: 255, 0, 0)
Orange #FF7F00 (RGB: 255, 127, 0)
Yellow #FFFF00 (RGB: 255, 255, 0)
Green #00FF00 (RGB: 0, 255, 0)
Blue #0000FF (RGB: 0, 0, 255)
Indigo #6600FF (RGB: 111, 0, 255)
Violet #8B00FF (RGB: 143, 0, 255)
Правила
- Программа должна вывести «Hello World». (Не обязательно должен быть текст, но он должен быть различим как «Hello World»)
- Каждая буква должна быть разного цвета.
- Цвета могут быть в любом порядке.
- Вы должны использовать каждый из семи цветов хотя бы один раз. (Вы можете использовать больше, чем данные цвета)
- Не использовать языки разметки в любом случае .
Победителем становится тот, у кого наименьшее количество символов И кто следует правилам
Бонус -1 персонаж, если написано в DART
Я выберу победителя 11 января (если я помню; D).
Удачи
ПОБЕДИТЕЛЬ (ы)
Я ошибся D :, обновил победителей.
Первый. stranac - Python, 60 символов
Второй. Илмари - Каронен Perl + GD, 146 символов
Самая короткая длина с соблюдением всех правил.
Брауни указывает на JiminP для ответа DART.
источник
H
он печатается с использованием escape-кода для черного цвета, поэтому он не виден на большинстве терминалов.Mathematica
Я знаю, я знаю, это не соответствует правилам ... но мне пришлось попробовать поиграть с функциями обработки изображений Mathematica.
Снимок экрана:
источник
Haskell, 88 символов
Обратите внимание, что здесь используются цвета терминала ANSI, из которых только 6, и они могут не совпадать с точными данными (это зависит от настроек терминала), поэтому я немного изменю правила здесь.
Немного более длинная версия с почти правильными цветами, 107 символов
Эта версия использует цвета xterm вместо цветов ANSI. Это не зависит от каких-либо пользовательских палитр и использует самые близкие цвета, которые я мог найти в 256-цветовой палитре xterm.
источник
Питон, 261 символ
Реализует спецификацию точно, генерируя изображение в ppm. Вот результат, преобразованный в gif и увеличенный в 4 раза:
источник
n=255;C=((n,0,0),(n,127,0),(n,n,0),(0,n,0),(0,0,n),(111,0,n),(143,0,n))
Perl -> ANSI терминал, 53 символа
Это приводит к тому же результату, что и решение Hamke's Haskell . Он использует
say
, поэтому требует Perl 5.10+ и-M5.010
(или-E
) переключатель. Для старых версий заменитеsay
наprint
. Тривиальное односимвольное сокращение может быть достигнуто путем замены\e
буквенным символом ESC, но это усложнит чтение и редактирование кода.Редактировать: Добавлены два символа, чтобы точно соответствовать выводу Хаммара, и чтобы фактически показать все шесть возможных цветов терминала. (В более ранней версии единственным символом, напечатанным цветом 6 = голубой, был пробел.)
Снимок экрана:
Изменить 2: Если разрешено использование пользовательской палитры терминалов (и подчеркивания для пробела), то я могу легко воспроизвести точные цвета, указанные в спецификации, всего с 50 символами:
Снимок экрана:
источник
Perl -> HTML, 99 символов
Снимок экрана:
HTML, вероятно, не пройдет никаких валидаторов, но должен быть понятен практически всеми браузерами. Этот код не дает точные цвета RGB, которые вы перечислили, но он очень близок. В частности, цвета букв:
Вывод выглядит намного лучше на черном фоне, но явная печать
<body bgcolor=black>
стоила бы мне 28 дополнительных символов. Вы можете изменить настройки браузера, чтобы добиться того же эффекта. :-)источник
Perl + GD, 146 символов
Согласно комментариям к моему другому ответу , вот решение, которое напрямую создает файл изображения с использованием библиотеки GD:
И вот вывод:
Опять же, использование черного фона выглядело бы лучше, но стоило бы мне 29 символов (
$m->bgcolor(0,0,0);$m->clear;
).Изменить: выяснил, как сбрить 20 символов с помощью (ab), используя косвенную запись объекта и несколько других настроек. Новый код выдает предупреждение, но все равно работает нормально.
источник
Постскриптум
155143Это зависит от способности Ghostscript «выяснить», что Palatino является сокращением от Palatino-Roman.
источник
Некоторые разные подходы к этому с
PostScript
Первый: самый короткий ( 89 ):
Un-golfed:
Это непрерывно меняет цвет в направлении х, используя цветовое пространство hsb. (Идея использовать цвета hsb и kshow зачисляется luser droog - см. Его запись!) Он не использует точные семь цветов, заданные MrZander.
Ограничиваясь цветами MrZander, я получаю 141 символ:
Это кодирует значение оттенка цветов MrZander как один байт в диапазоне ASCII для печати. Этот байт преобразуется в значение оттенка в диапазоне от 0 до 1 путем вычитания 32 и деления на 166. За каждым символом строки «Hello World» следует его закодированное значение оттенка.
Un-golfed:
ТОДО : Что-то не так с цветами.
источник
Некоторые обманывают, но решают проблему
Баш + Рубин (нужен
lolcat
драгоценный камень)источник
Дарт в HTML,
135134-1 = 133main(){for(var s="Hello World",i=0;i<11;print("<font color=#${'F00F60FB0FF06F00F00B606B00F60F90F'.substring(i*3,i*3+3)}>${s[i++]}"));}
Есть ли способ раскрасить текст без использования языка разметки? Я не могу проверить холсты ...
источник
Я знаю, что там написано «нет разметки в любом случае», но я бы хотел представить этот CSS из 468 символов:
Ничего из стилизации не сделано с разметкой.
источник
Рубин
Еще 242 процедурных способа:
Если мне удастся придумать лучший способ создать цвета, я буду. Несколько из средних я просто сделал несколько проб и ошибок для получения близких цветов.
источник