考虑到变量'点'每增加一个变量'球员'收集一个点,我如何找到一个逻辑上奖励用户在5分钟内找到30点的限制没有倒计时。
球员可能有4分,但如果他有34分,5分钟内也算。
我在考虑使用时间戳,但我真的不知道怎么做。

最佳答案

你说的是一个“sliding window”。你的窗口是基于时间的记录每个点的时间戳,并在这些时间戳上滑动窗口。您需要选择一个时间增量来滑动窗口。
在每一张幻灯片上,数一数你的分数。当你得到你需要的数量时,“奖励你的用户”“在每张幻灯片上”意味着您需要某种计时器,每次都调用一个函数来计算结果并执行您想要的操作。
例如,将窗口设置为5分钟,幻灯片设置为1秒不要保留一个称为points的变量相反,只需创建一个时间戳数组每个计时器滴答(在本例中为1秒),计算与t-5分钟匹配的时间戳数;如果有30个或更多时间戳,则已达到阈值,并可以奖励您的超快用户如果你需要实际的值,那可能是34,好吧,你已经计算过了,所以你可以使用它。
可能有办法优化这一点。我提供了天真的方法可以删除超出范围的时间戳以节省空间。
如果有“进入窗口的点”可以计算,那么只需将它们添加到总和中。

10-02 03:59
查看更多