游戏规则观察:方向转动的最短角度(练习23)
两个方向的数字相差很大,实际旋转却可能很短。例如越过零度边界时,需要比较顺时针与逆时针两条路,而不是直接使用两个读数的差。
以下是为了练习规则阅读而设计的独立场景。所有输入在这里完整列出,可以先自己记录结果,再对照后面的计算。它不声称对应某款现成游戏;如果实际说明中的边界或处理顺序不同,应以该说明重新演算。
条件与输入
本例角度增大表示顺时针,角度以度为单位。最短转动固定取负一百八十度到小于正一百八十度的范围,正好相反时统一选择负方向。
终点减起点后,选择与它相差整数圈、且落在负180至小于180之间的那个转角。
起点与终点对[[327, 14], [45, 34], [335, 262], [310, 69], [334, 116], [358, 171], [248, 148], [245, 0], [219, 219], [219, 39]]
逐项复盘
从327度到14度:直接差值-313,规范后的最短有符号转角47度,复核落点14度。
从45度到34度:直接差值-11,规范后的最短有符号转角-11度,复核落点34度。
从335度到262度:直接差值-73,规范后的最短有符号转角-73度,复核落点262度。
从310度到69度:直接差值-241,规范后的最短有符号转角119度,复核落点69度。
从334度到116度:直接差值-218,规范后的最短有符号转角142度,复核落点116度。
从358度到171度:直接差值-187,规范后的最短有符号转角173度,复核落点171度。
从248度到148度:直接差值-100,规范后的最短有符号转角-100度,复核落点148度。
从245度到0度:直接差值-245,规范后的最短有符号转角115度,复核落点0度。
从219度到219度:直接差值0,规范后的最短有符号转角0度,复核落点219度。
从219度到39度:直接差值-180,规范后的最短有符号转角-180度,复核落点39度。
按顺序最短转角为[47, -11, -73, 119, 142, 173, -100, 115, 0, -180]。
如何自行核对
把起点加上算出的有符号转角,再对三百六十取余,应当得到终点。绝对值不能超过一百八十;端点相同时应为零,不能平白多转一圈。
如果界面规定正值表示逆时针,只需统一改变符号约定,不能让起点读数、终点读数与执行方向分别使用不同坐标规则。
练习时保留原输入,只改一处条件,再观察哪些结果发生变化。若结果与预期不同,先查编号起点、边界是否包含以及前一步留下的状态。这样的记录能把“感觉不对”变成可复现的问题,也更方便向同伴说明自己的判断依据。
