Wcześniej wszystkie 1337 dzieci używało suwaków tekstowych w pokojach rozmów. Nie wiem o was, ale chcę czuć się tak, jak oni. Jedyny problem polega na tym, że ich stare skrypty i aplikacje były mocno powiązane z oprogramowaniem, dla którego zostały stworzone, więc nie mogę po prostu korzystać z tej niesamowitej funkcjonalności gdziekolwiek chcę. Chcę też, aby rozwiązanie było łatwe do przenoszenia, więc musisz zminimalizować kod, aby zmieścił się na mojej dyskietce (wolałbym nosić tylko jedną dyskietkę, ale jeśli kod źródłowy jest zbyt duży Mogę nosić więcej niż jeden : P ).
Wejście
- Lista kolorów (rgb, hex, nazwy itp.)
- Tekst do sformatowania
Twój program powinien oczekiwać, że lista kolorów będzie zawierać co najmniej 2 kolory.
Tekst do sformatowania może mieć dowolną długość większą niż zero, a znaki będą ograniczone do ascii drukowalnych. (Wskazówka: dłuższe wprowadzanie tekstu może wymagać ponownego użycia kolorów pośrednich dla kolejnych znaków)
Wynik
Tekst wyjściowy nie powinien różnić się od tekstu wejściowego w żaden inny sposób niż czcionka i / lub znaczniki / style (Uwaga: jeśli twój wynik zawiera znaczniki html, musisz kodować dane wejściowe w formacie html). Możesz wyprowadzać tekst ze znacznikami / stylami (tagi stylu HTML, kolory konsoli itp.) Lub obraz wyblakłego tekstu. Wszystkie heksy kolorów powinny być obecne na wydruku, chyba że dane wejściowe nie zawierają wystarczającej liczby znaków, aby spełnić to wymaganie. W takim przypadku zapoznaj się z regułami pierwszeństwa, aby określić, które heksy kolorów powinny być obecne na wydruku. Kolejność lub te kolory na wydruku powinny nadal być kolejnością wprowadzania.
Zasady pierwszeństwa kolorów
- W przypadku, gdy na wejściu jest jeden znak, zostanie użyty pierwszy kolor
- W przypadku, gdy są tylko dwie postacie, użyty zostanie pierwszy i ostatni kolor
- W przypadku, gdy jest więcej niż trzy kolory i więcej kolorów niż znaków, pierwszeństwo mają pierwsze i ostatnie kolory, a następnie pozostałe kolory w kolejności wprowadzania.
- W przypadku, gdy znaków jest więcej niż kolorów, postacie powinny przechodzić z jednego koloru do drugiego przy użyciu kolorów pośrednich
Przykłady (odpowiednio zasady pierwszeństwa 1-3):
# Kolory | Kolor 0 | ... | Kolor n | Tekst
3 ff0000 0000ff ffff00 M-> -> ->
3 ff0000 0000ff ffff00 hi
4 ff0000 0000ff ffff00 0fff00 sup
Aby było jasne, kolor tekstu powinien zanikać z jednego koloru szesnastkowego na drugi. Zanikanie nie musi być idealnie jednolite, ale nie powinno być nagłą zmianą koloru, chyba że nie ma wystarczającej liczby postaci, aby ładnie zaniknąć. Zasadniczo to zanikanie uzyskuje się poprzez wybranie kolorów pośrednich dla każdego ze znaków poprzez zwiększenie / zmniejszenie wartości rgb o pewien przedział określony przez liczbę znaków, z którymi trzeba pracować, oraz różnicę między kolorami. Na przykład, jeśli potrzebujemy jednego koloru pomiędzy
(# ff0000) a
(# 000000), możemy wybrać,
ponieważ znajduje się on pośrodku. Optymalna wydajność będzie wyglądać raczej ładnie.
Przykład (reguła pierwszeństwa 4):
3 ff0000 ff7f00 f0ff00 To be or not to be, that is the question...->
-LUB-
<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>
W odpowiedzi określ sposób wyświetlania wyników (w formacie html, w konsoli, jako obraz itp.).
* Wszystkie czarne tła służą wyłącznie do podkreślenia kolorów i nie są wymagane
Punktacja
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź (w bajtach).
Jeśli uda ci się dodać blaknięcie do poszczególnych postaci, na zawsze będę myśleć, że jesteś fajny (ale nie ma żadnej premii do zdobycia, ponieważ nie będzie to sprawiedliwe dla niektórych języków)
000000i ff0000powinna być b40000( 255*sqrt((0+1)/2))

#000000i#ff0000nie jest#800000.