В свое время все 1337 детей использовали текстовые фейдеры в чатах. Я не знаю о вас, ребята, но я хочу чувствовать себя круто, как они. Единственная проблема заключается в том, что их старые скрипты и приложения были тесно связаны с программным обеспечением, для которого они были созданы, поэтому я не могу просто использовать эту удивительную функциональность там, где я хочу. Я также хочу, чтобы решение было легко переносимым, поэтому вам нужно сделать код как можно меньшего размера, чтобы он поместился на моей дискете (я бы предпочел нести только одну дискету, но если ваш исходный код слишком велик) Я могу нести больше одного : P ).
вход
- Список цветов (rgb, hex, имена и т. Д.)
- Текст для форматирования
Ваша программа должна ожидать, что список цветов будет содержать как минимум 2 цвета.
Текст для форматирования может быть любой длины больше нуля, и символы будут ограничены для печати ascii. (Совет: при более длинном вводе текста может потребоваться повторное использование промежуточных цветов для последовательных символов)
Выход
Выходной текст не должен отличаться от входного текста ни в коем случае, кроме шрифта и / или разметки / стиля (Примечание: если ваш вывод содержит html-разметку, вам потребуется html-кодирование ввода). Вы можете выводить текст с разметкой / стилями (теги стиля html, цвета консоли и т. Д.) Или изображением блеклого текста. Все цветные гексы должны присутствовать в выходных данных, если входные данные не содержат достаточно символов для удовлетворения этого требования. Если это так, то обратитесь к правилам приоритета, чтобы определить, какие цветные гексы должны присутствовать в ваших выходных данных. Порядок или эти цвета в вашем выводе все еще должны быть порядком ввода.
Правила приоритета цвета
- В случае, если введен один символ, будет использован первый цвет
- В случае, если есть только два символа, будет использован первый и последний цвет
- В случае, если имеется более трех цветов и больше цветов, чем символов, первый и последний цвета должны иметь приоритет, а затем остальные цвета в порядке их ввода.
- Если символов больше, чем цветов, символы должны переходить от одного цвета к другому, используя промежуточные цвета
Примеры (правила приоритета 1-3 соответственно):
# Цвета | Цвет 0 | ... | Цвет п | Текст
3 ff0000 0000ff ffff00 M-> -> ->
3 ff0000 0000ff ffff00 hi
4 ff0000 0000ff ffff00 0fff00 sup
Чтобы быть понятным, цвет текста должен исчезнуть из одного цветового гексагона в другой. Исчезновение не обязательно должно быть абсолютно равномерным, но оно не должно быть резким изменением цвета, если не хватает символов, чтобы красиво исчезнуть. Обычно это затухание достигается путем выбора промежуточных цветов для каждого из символов путем увеличения / уменьшения значений rgb на некоторый интервал, определяемый количеством символов, с которым вы должны работать, и разницей между цветами. Например, если нам нужен один цвет между
(# ff0000) и
(# 000000), мы можем выбрать,
как он расположен прямо посередине. Оптимальный результат будет выглядеть довольно красиво.
Пример (правило приоритета 4):
3 ff0000 ff7f00 f0ff00 To be or not to be, that is the question...->

-OR-
<span style="color:#ff0000;">T</span><span style="color:#ff0600;">o</span><span style="color:#ff0c00;"> </span><span style="color:#ff1200;">b</span><span style="color:#ff1800;">e</span><span style="color:#ff1e00;"> </span><span style="color:#ff2400;">o</span><span style="color:#ff2a00;">r</span><span style="color:#ff3000;"> </span><span style="color:#ff3600;">n</span><span style="color:#ff3c00;">o</span><span style="color:#ff4300;">t</span><span style="color:#ff4900;"> </span><span style="color:#ff4f00;">t</span><span style="color:#ff5500;">o</span><span style="color:#ff5b00;"> </span><span style="color:#ff6100;">b</span><span style="color:#ff6700;">e</span><span style="color:#ff6d00;">,</span><span style="color:#ff7300;"> </span><span style="color:#ff7900;">t</span><span style="color:#ff7f00;">h</span><span style="color:#fe8500;">a</span><span style="color:#fe8b00;">t</span><span style="color:#fd9100;"> </span><span style="color:#fc9700;">i</span><span style="color:#fb9d00;">s</span><span style="color:#fba400;"> </span><span style="color:#faaa00;">t</span><span style="color:#f9b000;">h</span><span style="color:#f9b600;">e</span><span style="color:#f8bc00;"> </span><span style="color:#f7c200;">q</span><span style="color:#f6c800;">u</span><span style="color:#f6ce00;">e</span><span style="color:#f5d400;">s</span><span style="color:#f4da00;">t</span><span style="color:#f4e100;">i</span><span style="color:#f3e700;">o</span><span style="color:#f2ed00;">n</span><span style="color:#f1f300;">.</span><span style="color:#f1f900;">.</span><span style="color:#f0ff00;">.</span>
В своем ответе укажите, как должен отображаться ваш вывод (в виде html, в консоли, как изображение и т. Д.).
* Все черные фоны предназначены только для выделения цвета и не обязательны
счет
Это код-гольф , поэтому выигрывает самый короткий ответ (в байтах).
Если вам удастся добавить затухание для отдельных персонажей, то я всегда буду думать, что вы крутые (но без бонуса, так как это не будет справедливым для некоторых лангов)
000000и ff0000должно быть b40000( 255*sqrt((0+1)/2))

#000000и#ff0000нет#800000.