本篇用一份独立的虚构游戏记录练习节拍判定的边界检查。先按规则预测最后状态,再逐行对照运算,可以找出差异究竟来自输入、边界条件,还是结算先后。下面所有数值都只服务于这一道练习。
绝对偏差不大于32毫秒为精准、计3分;其余不大于72毫秒为有效、计1分;更大为错过、计0分。每拍只有表中对应的一次输入。
拍点/对应输入(毫秒):1000/928;1500/1427;2000/1968;2500/2468;3000/3073;3500/3500;4000/3927;4500/4427
节拍判定看的是输入和目标拍点的时间差,不是输入时刻本身。提前和延后可以用同一个绝对偏差表示,同时应保留方向用于复盘。
每个目标在本题中都有独立的一次对应输入,不进行抢占、自动配对或重复计分。判定窗口含边界,不能把等于阈值误归到下一档。
第1拍目标1000毫秒,输入928毫秒,提前72,绝对偏差72毫秒;判为有效,计1分。
第2拍目标1500毫秒,输入1427毫秒,提前73,绝对偏差73毫秒;判为错过,计0分。
第3拍目标2000毫秒,输入1968毫秒,提前32,绝对偏差32毫秒;判为精准,计3分。
第4拍目标2500毫秒,输入2468毫秒,提前32,绝对偏差32毫秒;判为精准,计3分。
第5拍目标3000毫秒,输入3073毫秒,延后73,绝对偏差73毫秒;判为错过,计0分。
第6拍目标3500毫秒,输入3500毫秒,正好对齐,绝对偏差0毫秒;判为精准,计3分。
第7拍目标4000毫秒,输入3927毫秒,提前73,绝对偏差73毫秒;判为错过,计0分。
第8拍目标4500毫秒,输入4427毫秒,提前73,绝对偏差73毫秒;判为错过,计0分。
精准3次、有效1次、错过4次,总分10。
本例两个窗口都包含等号。偏差正好为32仍属于精准,正好为72仍属于有效,超过边界1毫秒才会降档。这个区分可用于逐条检查边界输入。
自己复核时,可以把纸分成“操作前状态、这一条输入、操作后状态”三栏。先遮住解答完成一遍,再只查找第一次出现分歧的位置;后面的错误往往只是前一步状态传递的结果。确认规则没有改变后,再重新继续,避免只改最终答案却保留中间错误。
第二轮练习只改一条输入,提前写下你预计哪些后续步骤会变化,再重新演算验证。不要同时更改多个条件,否则很难分清是哪条规则造成差别。若实际游戏还涉及随机结果、其他角色、装备或额外判定,应先把这些条件补入记录,本例不会替它们作假设。