读懂游戏机制·持续时间的刷新与延长:记录03的逐步演算
本篇用一份独立的虚构游戏记录练习持续时间的刷新与延长。先按规则预测最后状态,再逐行对照运算,可以找出差异究竟来自输入、边界条件,还是结算先后。下面所有数值都只服务于这一道练习。
先读清楚本例规则
每次触发提供6秒状态。刷新规则直接把结束点设为当前时刻加6;延长规则在尚有剩余时把6加到旧结束点,已结束则从当前时刻重新计。
触发时刻(秒):0,8,16,17,18,24,26
为何这样记录
再次获得同一种状态时,刷新计时和累计剩余时间是不同机制。相同的触发记录,套用不同规则,最后结束的时刻可能相差很多。
本例分别维护两条独立时间轴。状态在结束时刻本身已经失效;新触发不会把已经过去的空档补算为有效时间。
逐步演算
第1次在0秒触发:刷新规则把结束点0改为6;延长规则取当前时刻0与旧结束点0中的较大值,再加6,得到6。
第2次在8秒触发:刷新规则把结束点6改为14;延长规则取当前时刻8与旧结束点6中的较大值,再加6,得到14。
第3次在16秒触发:刷新规则把结束点14改为22;延长规则取当前时刻16与旧结束点14中的较大值,再加6,得到22。
第4次在17秒触发:刷新规则把结束点22改为23;延长规则取当前时刻17与旧结束点22中的较大值,再加6,得到28。
第5次在18秒触发:刷新规则把结束点23改为24;延长规则取当前时刻18与旧结束点28中的较大值,再加6,得到34。
第6次在24秒触发:刷新规则把结束点24改为30;延长规则取当前时刻24与旧结束点34中的较大值,再加6,得到40。
第7次在26秒触发:刷新规则把结束点30改为32;延长规则取当前时刻26与旧结束点40中的较大值,再加6,得到46。
结果与交叉核对
最后一次触发后,刷新版本到32秒结束,延长版本到46秒结束,相差14秒。
从最后触发时刻26看,两种规则剩余时间分别是6秒和20秒。要比较剩余时间,必须减掉同一个观察时刻,不能直接把结束点当成持续长度。
自己怎样练习
自己复核时,可以把纸分成“操作前状态、这一条输入、操作后状态”三栏。先遮住解答完成一遍,再只查找第一次出现分歧的位置;后面的错误往往只是前一步状态传递的结果。确认规则没有改变后,再重新继续,避免只改最终答案却保留中间错误。
第二轮练习只改一条输入,提前写下你预计哪些后续步骤会变化,再重新演算验证。不要同时更改多个条件,否则很难分清是哪条规则造成差别。若实际游戏还涉及随机结果、其他角色、装备或额外判定,应先把这些条件补入记录,本例不会替它们作假设。