Ce défi est en l'honneur des lumières de Noël collantes chez mes beaux-parents.
L'enjeu est de créer une sortie graphique montrant la décoration en "temps réel".
La vidéo (gif ou autre format) aura des "lumières" verticales et horizontales n par m . 5 <= m, n <= 40 . La taille et la résolution du cadre peuvent varier en fonction de n et m , mais doivent être d'au moins 50x50 pixels pour n, m = 5 (les graphiques vectoriels sont OK). Une image avec n=6
et m=5
ressemblera à ceci:
La décoration:
Couleurs:
Toutes les lumières auront l' un des 6 couleurs RGB suivantes {255,0,0}
, {0,255,0}
, {0,0,255}
, {255,255,0}
, {0,255,255}
et {255,0,255}
.
Animation:
n
etm
seront prises en entrée sur n'importe quel format raisonnable et dans l'ordre que vous aimez- L'image changera à chaque fois
dt = 25 ms
. Les écarts sont OK s'ils sont dus à des "facteurs extérieurs" tels que la limitation de l'interpréteur, un ordinateur lent, etc.- S'il est impossible de définir le pas de temps manuellement, le pas de temps par défaut est accepté.
- Tous les voyants seront rouges (
{255,0,0}
) àt=0
. - Il y a toujours 5% de chances que la première lumière (en haut à gauche) change de couleur. Toutes les couleurs (à l'exception de la couleur actuelle) devraient être tout aussi probables.
Chaque lumière (sauf la première) aura la couleur de la lumière à sa gauche. Si la lumière est à l'extrême gauche, elle obtiendra la couleur de la lumière à l'extrême droite dans la rangée ci-dessus. Les lumières sont numérotées comme indiqué ci-dessous. Le numéro de lumière
k
aura la couleur du numéro de lumièrek-1
.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
La sortie devrait en théorie fonctionner pour toujours (sauf si votre langue / interprète a une limitation qui l'empêche).
- Veuillez fournir un échantillon d'au moins 5 secondes, de préférence plus dans la réponse (c'est un encouragement, pas une exigence). (Un lien vers TIO ou similaire est bien sûr OK aussi: D)
- Les cadres, axes, lignes de grille, etc. sont acceptés.
6 par 5
15 par 30
r,g,y,b,
etc sont plus courts en plusieurs langues.
drawnow
quand j'ai implémenté ceci dans MATLAB, car le résultat était trop lent. Je pense que la réponse doit être: si c'est un choix de conception que l'interprète a une résolution temporelle minimale fixe de> = 25 ms, alors c'est OK. Si cela est dû à une implémentation médiocre / simple, à un interpréteur en ligne surchargé / lent, etc., ce n'est pas OK.