Esse desafio é uma homenagem às luzes de Natal brega da casa dos meus sogros.
O desafio é criar uma saída gráfica mostrando a decoração em "tempo real".
O vídeo (gif ou outro formato) terá "luzes" verticais e horizontais n-por-m . 5 <= m, n <= 40 . O tamanho e a resolução de quadro pode variar consoante n e m , mas deve ser, pelo menos, 50x50 pixels para n, m = 5 (gráficos vectoriais é OK). Uma imagem com n=6
e m=5
será mais ou menos assim:
A decoração:
Cores:
Todas as luzes terá um dos 6 RGB-cores seguintes {255,0,0}
, {0,255,0}
, {0,0,255}
, {255,255,0}
, {0,255,255}
e {255,0,255}
.
Animação:
n
em
será considerado como entrada em qualquer formato razoável e na ordem que você desejar- A imagem mudará a cada
dt = 25 ms
. Os desvios são válidos se ocorrerem devido a "fatores externos", como limitação no intérprete, computador lento etc.- Se for impossível definir a etapa do tempo manualmente, a etapa padrão será aceita.
- Todas as luzes estarão vermelhas (
{255,0,0}
) emt=0
. - Sempre há uma chance de 5% de que a primeira luz (canto superior esquerdo) mude de cor. Todas as cores (exceto a atual) devem ser igualmente prováveis.
Cada luz (exceto a primeira) terá a cor da luz à esquerda. Se a luz estiver na extrema esquerda, ela exibirá a cor da luz na extrema direita na linha acima. As luzes são numeradas como mostrado abaixo. O número da luz
k
obterá a cor do número da luzk-1
.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Em teoria, a saída deve ser executada para sempre (a menos que seu idioma / intérprete tenha alguma limitação que impeça isso).
- Forneça uma amostra de pelo menos 5 segundos, de preferência mais na resposta (isso é um incentivo, não um requisito). (Um link para o TIO ou similar também é OK: D)
- Quadros, eixos, linhas de grade etc são aceitos.
6 por 5
15 por 30
r,g,y,b,
etc são mais curtos em vários idiomas.
drawnow
quando implementei isso no MATLAB, pois o resultado foi muito lento. Eu acho que a resposta deve ser: Se for uma opção de design que o intérprete tenha uma resolução de tempo mínimo fixa de> = 25 ms, tudo bem. Se for devido a uma implementação ruim / simples, um intérprete on-line sobrecarregado / lento etc., não está correto.