Le sfide del camaleonte sono una cosa negativa , a quanto pare. Peccato, i camaleonti sono belle creature. È ora di cambiare!
Come tutti sappiamo, molti camaleonti possiedono una notevole capacità di fondersi con l'ambiente circostante cambiando il colore della loro pelle. Qual è anche l'obiettivo di questa sfida.
Sfida
Immagina un quadrato di nove pixel. Otto pixel sono i dintorni. Al centro c'è il camaleonte.
Come questo:
Il camaleonte cerca naturalmente di fondersi con l'ambiente circostante. Lo fa cambiando il suo colore alla media di quella dei pixel circostanti. Quindi, in questo caso, il camaleonte cambierebbe colore .
Obbiettivo
Dati i colori dei pixel circostanti, genera il colore del camaleonte.
Il colore del camaleonte è definito come il totale di tutto il rosso, il verde e il blu nei pixel ÷ 8.
Ingresso
Una matrice di valori di colore per gli otto pixel circostanti, iniziando in alto a sinistra e continuando in senso orario, in questo modo:
[[<red>,<green>,<blue>],[<red>,<green>,<blue>],[<red>,<green>,<blue>],[<red>,<green>,<blue>],[<red>,<green>,<blue>],[<red>,<green>,<blue>],[<red>,<green>,<blue>],[<red>,<green>,<blue>]]
Puoi scegliere di ricevere input in una forma diversa, purché sia composta da otto triple di numeri decimali 0-255.
Se ricevi input in una forma diversa, i numeri devono avere una lunghezza coerente o avere un separatore non numerico tra loro. Le triple devono avere un carattere di separazione a meno che non abbiano 0 caratteri a 9 cifre. (Ad esempio 044200255044200255044200255044200255044200255044200255044200255044200255
è valido, così come sono 44 200 255 44 200 255 44 200 255 44 200 255 44 200 255 44 200 255 44 200 255 44 200 255
e 44?200?255$44?200?255$44?200?255$44?200?255$44?200?255$44?200?255$44?200?255$44?200?255
, ma 4420025544200255442002554420025544200255442002554420025544200255
non lo è.)
Produzione
Un array / stringa / ecc. Contenente i colori del pixel centrale (in decimale), come questo:
[<red>,<green>,<blue>]
Nel caso in cui si produca qualcosa di diverso da un array: i numeri devono avere una lunghezza coerente o avere un separatore non numerico tra loro. (Ad esempio 044200255
è valido, così è 44 200 255
, ma 44200255
non lo è.)
I numeri potrebbero non contenere punti decimali, quindi ad es. Non 44.0 200 255.0
è valido.
Arrotondamento
L'output deve essere arrotondato al numero intero più vicino. (Le metà devono essere arrotondate per eccesso.) Ad esempio, se la somma di tutto il rosso è 1620 , è necessario produrre 203
, no 202
o 202.5
.
Esempi
Le foto sono solo per illustrazione. Il pixel centrale è l'output, i pixel circostanti sono l'input.
Ingresso:
[[200,200,200],[200,200,200],[200,200,200],[200,200,200],[200,200,200],[200,200,200],[200,200,200],[200,200,200]]
Produzione:
[200,200,200]
Ingresso:
[[0,0,0],[255,255,255],[0,0,0],[255,255,255],[255,255,255],[0,0,0],[255,255,255],[0,0,0]]
Produzione:
[128,128,128]
Ingresso:
[[0,200,200],[200,0,200],[200,200,0],[60,200,0],[200,0,200],[0,200,220],[2,200,0],[0,0,0]]
Produzione:
[83,125,103]
Ingresso:
[[0,56,58],[65,0,200],[33,200,0],[60,33,0],[98,0,200],[0,28,220],[2,200,0],[99,0,5]]
Produzione:
[45,65,85]
Gli invii possono essere un programma completo o una funzione. Si applicano le regole I / O standard e scappatoia .