反复开关的机关可以用周期内的位置表示。先求当前时刻在本轮经过了多久,再判断开闭,通常比从第一轮逐次列出所有开关事件更清楚。
下面给出一组可以从头复算的练习数据。先按约定记录每一步,再比较最后的核对条件;遇到差异时,不急着修改答案,而是先找出从哪一步开始不同。本例描述的是明确限定的游戏规则模型,不代替某款作品自己的说明。
约定与输入
本例每轮开始先关闭一段时间,之后开放至本轮结束;时刻和时长均为整数。只判断进入机关的瞬间,不保证角色穿越整段通道所需的时间也都安全。
相位为时刻除周期的余数;相位不小于关闭时长即可进入,否则等到当前轮开放边界。
周期14秒,每轮前6秒关闭 到达时刻[6, 23, 24, 26, 30, 38, 53, 55, 66, 82]
逐步观察
到达时刻6,本轮相位6:已开放;最早进入时刻6,进入相位6。
到达时刻23,本轮相位9:已开放;最早进入时刻23,进入相位9。
到达时刻24,本轮相位10:已开放;最早进入时刻24,进入相位10。
到达时刻26,本轮相位12:已开放;最早进入时刻26,进入相位12。
到达时刻30,本轮相位2:仍关闭,等待4;最早进入时刻34,进入相位6。
到达时刻38,本轮相位10:已开放;最早进入时刻38,进入相位10。
到达时刻53,本轮相位11:已开放;最早进入时刻53,进入相位11。
到达时刻55,本轮相位13:已开放;最早进入时刻55,进入相位13。
到达时刻66,本轮相位10:已开放;最早进入时刻66,进入相位10。
到达时刻82,本轮相位12:已开放;最早进入时刻82,进入相位12。
对应等待时长为[0, 0, 0, 0, 4, 0, 0, 0, 0, 0]。
复核办法
把计算出的进入时刻代回周期,必须落在开放区;若需要等待,前一秒还应处于关闭区。这个检查同时验证结果可行以及没有多等一秒。
如果角色需要连续两秒才能穿过,就还要检查整个占用区间是否都开放;本篇故意只处理瞬间进入,以免把入口判断和全程安全混在一起。
把边界、顺序与适用范围写进记录,比只记一个最后数字更有用。可以另外构造刚好在边界、完全没有变化和多个条件同时成立的情况,查看规则是否仍自洽;若要改变设定,保留原案例作为对照,再重新计算受影响的部分。
![九游会招商[J9总代理]招商合作官方网站](https://agent-j9iuyouhui-j9.com/upload/image/jiu-you-hui-zhao-shang-J9-zong-dai-li-zhao-shang-he-zuo-guan-fang-wang-zhan-logo.webp)