Ai tempi, tutti i 1337 bambini usavano i fader di testo nelle chat room. Non so voi ragazzi, ma voglio sentirmi forte come hanno fatto loro. L'unico problema è che i loro vecchi script e applicazioni erano fortemente accoppiati al software per cui erano stati creati, quindi non posso semplicemente usare questa straordinaria funzionalità dove voglio. Voglio anche che la soluzione sia facilmente trasportabile, quindi dovrai rendere il codice il più piccolo possibile in modo che si adatti al mio disco floppy (preferirei portare solo un floppy ma se il tuo codice sorgente è troppo grande Posso trasportarne più di uno : P ).
Ingresso
- Un elenco di colori (rgb, hex, nomi, ecc.)
- Testo da formattare
Il tuo programma dovrebbe aspettarsi che l'elenco dei colori contenga almeno 2 colori.
Il testo da formattare può avere una lunghezza maggiore di zero e i caratteri saranno limitati agli ascii stampabili. (Suggerimento: input di testo più lunghi potrebbero richiedere il riutilizzo di colori intermedi per caratteri consecutivi)
Produzione
Il testo di output non dovrebbe differire dal testo di input in alcun modo diverso da font e / o markup / stile (Nota: se il tuo output contiene markup html, dovrai codificare html nell'input). È possibile produrre testo con markup / stile (tag di stile html, colori della console, ecc.) O un'immagine del testo sbiadito. Tutti gli esagoni di colore devono essere presenti nell'output a meno che l'input non contenga caratteri sufficienti per soddisfare questo requisito. In tal caso, consultare le regole di priorità per determinare quali esagoni di colore devono essere presenti nell'output. L'ordine o questi colori nell'output devono comunque essere in ordine di input.
Regole di priorità dei colori
- Nel caso in cui l'input sia un carattere, verrà utilizzato il primo colore
- Nel caso in cui siano presenti solo due caratteri, verranno utilizzati il primo e l'ultimo colore
- Nel caso in cui siano presenti più di tre colori e più colori rispetto ai caratteri, è necessario dare priorità al primo e all'ultimo colore, quindi al resto dei colori nel loro ordine immesso.
- Nel caso in cui ci siano più caratteri che colori, i caratteri dovrebbero sfumare da un colore all'altro usando colori intermedi
Esempi (rispettivamente le regole di priorità 1-3):
# Colori | Colore 0 | ... | Colore n | Testo
3 ff0000 0000ff ffff00 M-> -> ->
3 ff0000 0000ff ffff00 hi
4 ff0000 0000ff ffff00 0fff00 sup
Per essere chiari, il colore del testo dovrebbe sfumare da un esagono di colore al successivo. La dissolvenza non deve essere perfettamente uniforme, ma non dovrebbe essere un brusco cambio di colore a meno che non ci siano abbastanza personaggi da sfumare bene. Generalmente questa dissolvenza si ottiene scegliendo i colori intermedi per ciascuno dei caratteri aumentando / decrementando i valori rgb di un intervallo determinato dal numero di caratteri con cui lavorare e dalla differenza tra i colori. Ad esempio, se avessimo bisogno di un singolo colore tra
(# ff0000) e
(# 000000), potremmo scegliere
come si trova proprio nel mezzo. L'output ottimale apparirà piuttosto carino.
Esempio (regola di priorità 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>
Nella tua risposta specifica come deve essere visualizzato il tuo output (come html, in una console, come immagine, ecc.).
* Tutti gli sfondi neri sono solo per enfasi del colore e non sono richiesti
punteggio
Questo è code-golf , quindi vince la risposta più breve (in byte).
Se riesci ad aggiungere dissolvenza ai singoli personaggi, penserò per sempre che sei forte (ma nessun bonus da segnare in quanto questo non sarà giusto per alcuni lang)
000000e ff0000dovrebbe essere b40000( 255*sqrt((0+1)/2))

#000000e#ff0000non lo è#800000.