方向输入可以立即改变期望速度,但实际速度不一定同拍跳到目标值。限制每拍速度变化量,可以把起步、刹车和反向过程表示成容易复核的记录。
本篇用一组独立输入把规则展开为可重复核对的记录。先确认单位、编号及边界,再自行尝试推演,然后寻找与下面过程第一次不同的位置。所有结果只在这里写明的规则下成立,不能当作所有游戏的统一实现。
规则与输入
一维整数位置,初始速度与位置给定。每拍实际速度朝期望速度靠近,但变化绝对值不超过固定上限,不越过期望值;随后用更新后的速度移动一拍。没有摩擦、地形或其他外力。
初始[位置,速度][1, 2],加速上限3 [3, 5, 7, 1, 6, -7, -10, 1, -2, -4, -10, 10, 4, 5, 6, 6, -1]
逐步推演
第1拍目标速度3,旧速度2,变化1,新速度3,更新后位置4;变化上限为3。
第2拍目标速度5,旧速度3,变化2,新速度5,更新后位置9;变化上限为3。
第3拍目标速度7,旧速度5,变化2,新速度7,更新后位置16;变化上限为3。
第4拍目标速度1,旧速度7,变化-3,新速度4,更新后位置20;变化上限为3。
第5拍目标速度6,旧速度4,变化2,新速度6,更新后位置26;变化上限为3。
第6拍目标速度-7,旧速度6,变化-3,新速度3,更新后位置29;变化上限为3。
第7拍目标速度-10,旧速度3,变化-3,新速度0,更新后位置29;变化上限为3。
第8拍目标速度1,旧速度0,变化1,新速度1,更新后位置30;变化上限为3。
第9拍目标速度-2,旧速度1,变化-3,新速度-2,更新后位置28;变化上限为3。
第10拍目标速度-4,旧速度-2,变化-2,新速度-4,更新后位置24;变化上限为3。
第11拍目标速度-10,旧速度-4,变化-3,新速度-7,更新后位置17;变化上限为3。
第12拍目标速度10,旧速度-7,变化3,新速度-4,更新后位置13;变化上限为3。
第13拍目标速度4,旧速度-4,变化3,新速度-1,更新后位置12;变化上限为3。
第14拍目标速度5,旧速度-1,变化3,新速度2,更新后位置14;变化上限为3。
第15拍目标速度6,旧速度2,变化3,新速度5,更新后位置19;变化上限为3。
第16拍目标速度6,旧速度5,变化1,新速度6,更新后位置25;变化上限为3。
第17拍目标速度-1,旧速度6,变化-3,新速度3,更新后位置28;变化上限为3。
最终位置28、速度3,总位移27。
怎样独立检查
对每拍检查新速度位于旧速度与期望速度之间,并且与旧速度相差不超过上限;若期望仍在可达区间外,应恰好改变一个上限。累计新速度之和必须等于最终位置减初始位置。
本例先更新速度再移动,若另一实现先移动再更新,位置记录会不同。反向输入时可能先减速到零,再逐渐反向,不能把仍向前移动立刻解释为输入失效。单位是一拍的简化模型,不直接代表真实物理秒。
练习时先保存原始输入及中间结果,再只改变一个条件观察差异。重点检查空状态、相同数值、恰好到达边界和最后一步。不要为了凑出相同的最终结果而忽略较早出现的偏差,过程和结论都应能由同一套规则解释。
