Этот! такое цветовая сетка RGB ...
В основном это двумерная матрица, в которой:
- Первый ряд и первый столбец красного цвета.
- Второй ряд и второй столбец зеленого цвета.
- Третий ряд и третий столбец синего цвета.
Вот цвета, описанные графически с использованием букв R, G и B.
Вот как мы вычисляем цвет каждого пространства в сетке.
- Красный + Красный = Красный (# FF0000)
- Зеленый + Зеленый = Зеленый (# 00FF00)
- Синий + синий = синий (# 0000FF)
- Красный + Зеленый = Желтый (# FFFF00)
- Красный + Синий = Фиолетовый (# FF00FF)
- Зеленый + Синий = Чирок (# 00FFFF)
Соревнование
- Напишите код для создания цветовой сетки RGB.
- Это код гольф, поэтому попытайтесь сделать это наименьшим количеством байтов.
- Используйте любой язык программирования или язык разметки для создания вашей сетки.
- Вещи, которые меня волнуют:
- Результат должен графически отображать сетку RGB с заданными цветами.
- Вещи, которые меня не волнуют:
- Если выводом является изображение, HTML, SVG или другая разметка.
- Размер или форма цветовых блоков.
- Границы, расстояние и т. Д. Между или вокруг блоков.
- Определенно не обязательно иметь ярлыки, указывающие, какими должны быть цвета строк и столбцов.
code-golf
graphical-output
AJFaraday
источник
источник
Bitmap
объект в C #?Ответы:
Баш, 44
Здесь блоки - это
.
символы.^[
является буквенным escape-символом ASCII (0x1b).Вы можете воссоздать этот скрипт следующим образом:
источник
printf ${f=\\e[3%dm.}$f$f\\n 1 3 5 3 2 6 5 6 4
printf \\e[3%dm. 1'
расширяется до\\e[31m.
кода выхода ANSI для красного и т. д. и.
является символом для печати.printf "${f=^[[3%dm.}$f$f" 1 3 5 3 2 6 5 6 4
(Где^[
буквенный escape-символ = 1 байт и character буквальный символ новой строки = 1 байт.)Сборка 8088, IBM PC DOS,
4443 байтаЛистинг:
При этом используются
INT 10H
видеосервисы IBM PC BIOS для записи цветовой сетки на экран. К сожалению, единственный способ написать определенный атрибут цвета требует также написания кода для размещения курсора в следующем правильном месте, так что для этого есть много дополнительного кода.Вот вывод, работающий на IBM PC CGA (в текстовом режиме 40x25, чтобы сделать его больше).
Загрузите и протестируйте RGBGRID.COM для DOS.
источник
Wolfram Language (Mathematica) , 41 байт
Wolfram Language (Mathematica) , 68 байт
Mathematica имеет встроенные модули для всех этих цветов.
источник
80386 машинный код, IBM PC DOS, 38 байт
шестигранный:
как м:
масштабированный вывод из dosbox:
источник
mov al, 13h
это неверно, если только DOSBox не гарантирует, что это будетah = 0
в точке входа в программу.Excel VBA (немедленное окно), 80 байт
Excel VBA (функция), 96 байт
Не ужасный инструмент для работы ... Я ценю тот факт, что Excel уже показывает сетку, так что это вопрос настройки цвета фона.
Благодарим @Neil за предложение использовать
ColorIndex
вместоColor
43-байтовой экономии.-21 байт благодаря @Keeta
-16 байт спасибо @Chronocidal за предложение "Немедленное окно"
-2 байта благодаря @i_saw_drones
Множество изменений от моего первоначального представления :)
источник
ColorIndex
поскольку это число от 3 до 8, которое вы можете кодировать в виде строки или чего-то подобного.for i=1 To 3:for j=1 To 3:Cells(i,j).Interior.ColorIndex=Mid("367408005",i*j,1):next j,i
GFA Basic 2.02 (Atari ST), 48 байт
Отредактированный вручную листинг в формате .LST. Включает в себя множество непечатаемых символов, коды которых указаны в скобках.
Операционная система Atari ST определяет расширенные команды VT52, которые используются здесь.
Выход
скриншот из Steem SSE
источник
SVG,
210182 байтаПоскольку размер или форма цветовых блоков не имеет значения, с помощью этой немного странной компоновки можно выделить несколько байтов:
источник
HTML + CSS,
121120 байтХудший кусок HTML, который я когда-либо писал. Сохранение одного байта благодаря @Gust van de Wal
HTML + CSS, 114 байт (частично допустимый)
Я полагаю это как полу-действительный, потому что синий не совсем синий # 0000FF и также полагается на то, что не щелкнул ссылку.
Спасибо @Lynn за идею
источник
<w>
,<x>
,<y>
, и<z>
.<a href=x>█
по умолчанию будет синим, сэкономив вам несколько байтов CSS :)Дитаа , 118 байт
Это вывод с использованием
-E
опции:источник
R,
895048 байтовНовейшая версия:
Недостаточно элементов в векторе, чтобы заполнить матрицу 3х3, поэтому он оборачивается и повторно использует первый элемент.
Старые версии:
источник
Excel-VBA,
89737270 байтИзменить: Вы можете использовать непосредственное окно и отказаться от
Sub
/,End Sub
чтобы сохранить 16 байтов:Оригинальный ответ:
Это было вдохновлено предложением Нила об этом ответе, и это мое первое представление!
Результат:
-2 байта : удаление номеров строк ячеек - благодаря Тейлору Скотту !
источник
For i=1To 9:[A:C].Cells(i).Interior.ColorIndex=Mid(367648785,i,1):Next
для 70Perl 6 (и, вероятно, аналогичный для многих языков) (31 байт)
Это приводит к выводу файла TIFF без заголовка, который был сгенерирован Photoshop с расширением .raw и считается квадратным, если во время открытия не указано иное. Игра с глубиной цвета (если позволено) может еще больше уменьшить это.
источник
ffplay (ffmpeg), 93 байта
Старый :
источник
Golf'd:
Ungolf'd:
Редактирование:
Спасибо @flawr за указание, как исправить цвета!
Может сбрить , заменив на , который будет выглядеть как14bytes ▉ ▉ ▉▉▉▉▉▉▉▉▉▉
\rule{5em}{5em}
▉
, но просто выглядит не совсем так.
Возможно, удастся сбрить еще несколько байтов, найдя названия цветов, которые приемлемо напоминают предполагаемые цвета.
Просто чтобы показать, как будет выглядеть прилично версия:TEX'd RedGreenBlueRedGreenBlue.
источник
purple
сfuchsia
иteal
сaqua
иgreen
сlime
тогда все было бы правильно , я думаю.{}
. Но это нарушило бы слишком много принципов чистого кодирования для моего здравомыслия. = PLua + LÖVE / Love2D ,
186183 байтаПопробуйте онлайн!
Мой первый код в гольф!
источник
t={[0>1]=0,[0<1]=1}
.MATL,
44 23 21 2019 байтовПрямой порт моего октавского ответа с предложениями @ExpiredData и @LuisMendo.
попробуйте это онлайн
источник
Октава / MATLAB ,
57 5640 байт-17 байт благодаря @ExpiredData! Проверьте их даже решение для игры в гольф !
Попробуйте онлайн!
источник
Чертеж факторио, 705 байт
Я признаю, я просто раздвигаю границы того, что считается решением.
Производимый вывод при размещении в игре (используются низкие настройки графики):
Чтобы доказать, что это правильное решение, вам нужно отобрать эту сетку пикселей, которые точно соответствуют спецификации:
Остальная часть изображения классифицируется как граница или интервал, который, как сказано в вопросе, не имеет значения.
источник
Октава , 38 байт
Попробуйте онлайн!
источник
HTML / CSS,
278141137 байт-137 байтов благодаря комментаторам, особенно @data
-4 байта благодаря @Einacio
Использует Unicode
█
(U + 2588) для «блоков» и использует классы CSS / встроенный стиль для их раскрашивания.Я думаю, что
<font>
теги можно было бы больше использовать, однако, изменив их на более короткий, например,<a>
нарушаетcolor
атрибутисточник
</td>
, браузер достаточно умен, чтобы автоматически добавить этот закрывающий тег<td bgcolor=#f00>
<span style="color:red">█<span class=a>█<span class=b>█<br><span class=a>█<span style="color:#0f0">█<span class=c>█<br><span class=b>█<span class=c>█<span style="color:#00f">█
JavaScript,
108102 байтаНет фрагмента, потому что это работает только в реальной консоли браузера, а не в консоли фрагмента. Редактировать: Спасибо @AJFaraday за скриншот. Объяснение: Браузеры позволяют первому параметру
console.log
включать подстановки.%c
Подстановки принимает параметр и применяет его в качестве (продезинфицировать) CSS.█
Поэтому каждый блок окрашивается с использованием соответствующей подстроки,f0ff00f0
интерпретируемой как трехцветный код цвета.источник
%c
используется для создания строки формата, аргументами которой являются стили CSS для текста после нееff0ff
содержит все смешанные цвета и00f00
содержит все чистые цвета. Если вы их конкатенацию вы получаете повторяющиеся позиции дляff0
иf00
поэтому вы можете удалить первые и последние символы. Затем я написал короткий сценарий, чтобы проверить все 7-символьные строки, чтобы убедиться, что 8 является оптимальным.HTML (GIF), 108 байт
Это битва веб-форматов изображений! (Какие-нибудь TIF или JPG претенденты там?)
Ответить @AC .
HTML (BMP),
116115 байтовОтвет только @ ASCII .
HTML (WebP), 116 байт
Ответ @Hohmannfan .
HTML (PNG),
151136135 байтов-15 байт благодаря @Hohmannfan .
Также смотрите мои ответы по CSS и SVG .
источник
<img src="data:image/bmp;base64,Qk0+AAAAQVNDTxoAAAAMAAAAAwADAAEAGAD/AP///wD/AAAAAAAA//8A/wD//wAAAAAAAP8A////AP8AAAA=">
. Заголовок 14-байтового файла, 12-байтовый заголовок приложения, 9 фактических данных на строку (от +3 до дополнения до 4), да<img src="data:image/gif;base64,R0lGODdhAwADAMIGAAAA//8AAP8A/wD/AAD/////AAAAAAAAACwAAAAAAwADAAADBhglNSQEJAA7">
корочеiVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAIAAADZSiLoAAAAFElEQVR4AWP4z8Dw/z8DEIIodB4A4D0O8pOGuTgAAAAASUVORK5CYII=
<img src=data:image/webp;base64,UklGRjYAAABXRUJQVlA4TCoAAAAvAoAAAC8gEEjaH3qN+RcQFPk/2vwHH0QCg0I2kuDYvghLcAoX0f/4Hgc>
dc (на xterm), 64 байта
Вы просто получите кучу дурацких escape-кодов вместо цветов, но вы все равно можете попробовать это онлайн!
Насколько я понимаю, 16 основных цветов ANSI можно интерпретировать по желанию терминала. С другой стороны, 216 цветов в цветовом кубе xterm имеют явные значения RGB. Я использую эти коды и печатаю сетку из
X
s:Сначала мы устанавливаем входной радиус на основание 15 с
Fi
. Это стоит два байта, но возвращает три, так что ... чистый выигрыш байта (и большая потеря в читабельности). Затем мы пытаемся получить наши значения цвета в стек. В десятичном виде это будет21 51 201 51 46 226 201 226 196
, но мы находимся в дурацком режиме, так что будет16 36 D6 36 31 101 D6 101 D1
. Мы исключаем одно из пробелов, вставляя в макрос макрос, который мы должны определить в какой-то момент[AP]sF
(который просто печатает перевод строки). Мы можем сжать36 D6 36
и101 D6 101
, поместив первое значение в стек, продублировав его, поместив второе, а затем поменяв местами (36dD6r
,101dD6r
).Макрос
M
обрабатывает печать и еще много чего.1CP
печатает escape-символ Скобки используются для разграничения строк, и, насколько я знаю, не являются экранируемыми, поэтому нам нужно также напечатать скобку со значением ASCII61P
.[38;5;]P
это код «установить цвет переднего плана из нумерованного списка».n
печатает значение с вершины стека без новой строки, выталкивая его.[mX]P
заканчивает код и печатает «Х».z3%0=F
проверяет глубину стека мод 3, запуская наш макрос перевода строкиF
при необходимости.z0<M
продолжаетM
работать, пока в стеке есть вещи.dsMx
бежать.Обратите внимание, что если вы запустите это в dc в xterm, цвет переднего плана останется синим.
1CP61P74P
(вход, показанный на скриншоте) должен сбросить это.источник
Блочная черепаха, 45 блоков
Попробуйте онлайн!
Как насчет небольшой игры по поиску самого нелепого инструмента для работы?
Выход:
Программа (как скриншот для дополнительной ереси):
Примечание: выделенные серым цветом блоки также учитываются в метрике.
источник
Node.js, 79 байт
Создает файл с именем «P» в формате PPM, содержащий цветовую сетку.
источник
TI-Basic, х байтов (забьет, когда смогу)
Примечание. Фильтр содержимого не позволяет мне искать размеры токенов для каждой из этих команд. Если кто-то хочет забить для меня, пойти на это.
Это выглядит очень плохо на моем маленьком экране калькулятора. Но, эй, форма не имеет значения: ^)
Выход для гольфа: изменен для увеличения в 8 раз:
TI-BASIC, х байтов
Использование Pxl-On вместо текста:
Выход: взорван ~ 11x:
источник
TextColor
2 байта, а не 9, как вы ожидаете @NatC ++, SFML, 177 байт
Использует
sf::Image::create(int,int,unsigned char*)
метод для создания изображения со значениями RGB в немисточник
0xFF0000
как255<<16
.int b=255<<16,g=65280,r=255,d[]={r,g|r,b|r,g|r,g,b|g,b|r,b|g,b};
C #,
248204198 байтВыход:
источник
BASIC C64, 106 байт
источник
Wolfram Language (Mathematica), 72 байта
источник