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