这项挑战是为了纪念我在法律院里的俗气的圣诞灯。
面临的挑战是创建一个显示“实时”装饰的图形输出。
视频(gif或其他格式)将具有n×m的垂直和水平“灯光”。5 <= m,n <= 40。帧的大小和分辨率可能随n 和m的不同而变化,但对于n,m = 5(矢量图形是可以的),必须至少为50x50像素。带有和的图片如下所示:n=6
m=5
装饰:
颜色:
所有的灯都会有以下6个RGB-的颜色之一{255,0,0}
,{0,255,0}
,{0,0,255}
,{255,255,0}
,{0,255,255}
和{255,0,255}
。
动画:
n
并将m
以您喜欢的任何合理格式和顺序作为输入- 图像每隔都会改变
dt = 25 ms
。如果是由于“外部因素”(例如解释器的限制,计算机运行缓慢等)导致的偏差,则可以。- 如果无法手动设置时间步长,则接受默认时间步长。
- 所有指示灯在处将变为红色(
{255,0,0}
)t=0
。 - 第一个灯(左上)总是有5%的机会改变颜色。所有颜色(当前具有的颜色除外)应该具有相同的可能性。
每个灯(第一个灯除外)将在其左侧获得灯的颜色。如果光源在最左边,那么它将获得上方行最右边的颜色。灯的编号如下所示。灯光编号
k
将获得灯光编号的颜色k-1
。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
理论上,输出应该永远运行(除非您的语言/解释器有一定的限制,以防止这种情况)。
- 请提供至少5秒钟的样本,最好在答案中提供更多(这是一种鼓励,而不是要求)。(到TIO或类似的链接当然也可以:D)
- 可以接受框架,轴,网格线等。
6乘5
15乘30
r,g,y,b,
等在几种语言中更短。
drawnow
当我在MATLAB中实现此功能时,我避免了,因为结果太慢了。我认为答案必须是:如果解释器的固定最小时间分辨率为> = 25 ms,这是设计选择,那么可以。如果是由于实施不佳/简单,在线解释器超载/缓慢等原因,那是不对的。