То, о чем вы говорите, это " скользящее окно ".Ваше окно основано на времени.Запишите метку времени каждой точки и проведите свое окно по этим меткам времени.Вам нужно будет выбрать приращение времени, чтобы скользить в вашем окне.
После каждого «слайда» подсчитывайте свои очки.Когда вы получите нужную сумму, «вознаградите своего пользователя».«На каждом слайде» означает, что вам нужен какой-то таймер, который каждый раз вызывает функцию, чтобы оценить результат и сделать то, что вы хотите.
Например, установить окно на 5 минут и слайд 1 секунда . Не хранить единственную переменную с именем points .Вместо этого просто создайте массив временных меток.Каждый тик по таймеру (в данном случае - 1 секунда) подсчитывает количество временных отметок, которые соответствуют t - 5 минут до t сейчас ;если их 30 или более, вы достигли своего порога и можете наградить своего сверхбыстрого пользователя.Если вам нужно фактическое значение, которое может быть 34 , ну, вы только что вычислили его, так что вы можете использовать его.
Могут быть способы оптимизировать это.Я обеспечил наивный подход.Временные метки, которые вышли за пределы диапазона, могут быть удалены для экономии места.
Если есть «точки, входящие в окно», которые учитываются, просто добавьте их к сумме.