Questa sfida è in onore delle luci di Natale appiccicose nella casa dei miei suoceri.
La sfida è creare un output grafico che mostri la decorazione in "tempo reale".
Il video (GIF o altro formato) avrà "luci" verticali e orizzontali n-by-m . 5 <= m, n <= 40 . La dimensione di frame e la risoluzione possono variare a seconda n ed m , ma devono essere almeno 50x50 pixel per n, m = 5 (vettore grafica è OK). Una foto con n=6e m=5sarà simile a questa:
La decorazione:
Colori:
Tutte le luci avranno una delle seguenti 6 RGB-colori {255,0,0}, {0,255,0}, {0,0,255}, {255,255,0}, {0,255,255}e {255,0,255}.
Animazione:
nemverrà preso come input in qualsiasi formato ragionevole e nell'ordine che ti piace- L'immagine cambierà ogni
dt = 25 ms. Le deviazioni vanno bene se sono dovute a "fattori esterni" come limitazione nell'interprete, computer lento ecc.- Se è impossibile impostare manualmente la fase temporale, viene accettata la fase temporale predefinita.
- Tutte le luci saranno rosse (
{255,0,0}) at=0. - C'è sempre una probabilità del 5% che la prima luce (in alto a sinistra) cambierà colore. Tutti i colori (tranne il colore che ha attualmente) dovrebbero essere ugualmente probabili.
Ogni luce (tranne la prima) otterrà il colore della luce alla sua sinistra. Se la luce è all'estrema sinistra, otterrà il colore della luce all'estrema destra sulla riga sopra. Le luci sono numerate come mostrato di seguito. Il numero di luce
kotterrà il colore del numero di lucek-1.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18L'output dovrebbe in teoria funzionare per sempre (a meno che il tuo linguaggio / interprete non abbia alcune limitazioni che lo impediscono).
- Fornisci un campione di almeno 5 secondi, preferibilmente più nella risposta (questo è un incoraggiamento, non un requisito). (Ovviamente anche un collegamento a TIO o simili è OK: D)
- Sono accettati cornici, assi, linee di griglia ecc.
6-by-5
15-by-30
r,g,y,b,ecc. sono più brevi in diverse lingue.
drawnowquando l'ho implementato in MATLAB, poiché il risultato è stato troppo lento. Penso che la risposta debba essere: se è una scelta progettuale che l'interprete abbia una risoluzione temporale minima fissa> = 25 ms, allora va bene. Se è dovuto a un'implementazione scarsa / semplice, un interprete online sovraccarico / lento ecc., Allora non va bene.








