本篇用一份独立的虚构游戏记录练习连击间隔与断连。先按规则预测最后状态,再逐行对照运算,可以找出差异究竟来自输入、边界条件,还是结算先后。下面所有数值都只服务于这一道练习。
先读清楚本例规则
相邻成功命中的间隔不大于5秒时连击继续,否则重新从1段开始。每次命中按当前连击段数乘10计练习分。
命中时刻(秒):0,4,9,13,14,18,22,27,28,32
为何这样记录
连续输入不代表连续命中,也不必然形成一条连击。本例只研究已经确认命中的时间记录,通过相邻间隔判断是否需要重新从第一段计数。
检查的是相邻两次命中的间隔,而不是从第一下到当前的总时长。恰好等于允许间隔时仍可连上,只有超过边界才断开。
逐步演算
第1次在0秒命中,此前没有命中,从1段开始;当前1段,本次计10分,累计10分。
第2次在4秒命中,间隔4秒,没有超过上限,延续上一段;当前2段,本次计20分,累计30分。
第3次在9秒命中,间隔5秒,没有超过上限,延续上一段;当前3段,本次计30分,累计60分。
第4次在13秒命中,间隔4秒,没有超过上限,延续上一段;当前4段,本次计40分,累计100分。
第5次在14秒命中,间隔1秒,没有超过上限,延续上一段;当前5段,本次计50分,累计150分。
第6次在18秒命中,间隔4秒,没有超过上限,延续上一段;当前6段,本次计60分,累计210分。
第7次在22秒命中,间隔4秒,没有超过上限,延续上一段;当前7段,本次计70分,累计280分。
第8次在27秒命中,间隔5秒,没有超过上限,延续上一段;当前8段,本次计80分,累计360分。
第9次在28秒命中,间隔1秒,没有超过上限,延续上一段;当前9段,本次计90分,累计450分。
第10次在32秒命中,间隔4秒,没有超过上限,延续上一段;当前10段,本次计100分,累计550分。
结果与交叉核对
最大连击10段,最后保持10段,总练习分550。
重新起算的位置为无额外断连。断连只影响后续段数,本题不会扣回已经取得的分数。
自己怎样练习
自己复核时,可以把纸分成“操作前状态、这一条输入、操作后状态”三栏。先遮住解答完成一遍,再只查找第一次出现分歧的位置;后面的错误往往只是前一步状态传递的结果。确认规则没有改变后,再重新继续,避免只改最终答案却保留中间错误。
第二轮练习只改一条输入,提前写下你预计哪些后续步骤会变化,再重新演算验证。不要同时更改多个条件,否则很难分清是哪条规则造成差别。若实际游戏还涉及随机结果、其他角色、装备或额外判定,应先把这些条件补入记录,本例不会替它们作假设。
