这是一道专为练习设计的单人方格关卡,主题是转向也有代价,不是任何商业游戏的攻略。第12图从C6开始,目标标记在A1。先独立画一条候选路线,再与下文核对;解题重点是解释每一步为何允许,而不是记住某串方向。
地图共六行六列。列从左到右为A至F,行从上到下为1至6;例如C2表示第二行第三列。S是起点,G是目标,#是墙,.是普通空地。每次只能上下左右移动,不允许斜走或越过边界。
每次移动花费1点;如果移动方向与上一次不同,另加2点。第一步没有转向费用,掉头也只加2点。
A B C D E F 1 G . . . . . 2 . . . # . . 3 # . . . . . 4 . # . . . . 5 # . # . . . 6 . . S . . .
本图只有普通空地与墙。
到达同一位置时,朝向不同会影响下一步成本。比较路线时既看长度,也数清方向改变了多少次。
弯曲较少不自动代表最优,仍需把多走的步数加进总价;最后到达出口后不再收取转向费用。
C6 → D6 → E6 → E5 → E4 → E3 → E2 → E1 → D1 → C1 → B1 → A1
第3步在E5:转向加2;第8步在D1:转向加2。
1. 右:C6→D6;本次1,累计1 2. 右:D6→E6;本次1,累计2 3. 上:E6→E5;本次3,累计5 4. 上:E5→E4;本次1,累计6 5. 上:E4→E3;本次1,累计7 6. 上:E3→E2;本次1,累计8 7. 上:E2→E1;本次1,累计9 8. 左:E1→D1;本次3,累计12 9. 左:D1→C1;本次1,累计13 10. 左:C1→B1;本次1,累计14 11. 左:B1→A1;本次1,累计15
按照本题计分规则,上面这条路线用了11次操作,总代价为15。路线中方向改变2次,所以总价为11+2×2=15。不计转向时的最少步数是9,与这里的优化目标不同。
答案通过按累计代价从小到大展开合法状态核对。同一位置若带有不同钥匙、收集进度、开关状态、时刻、电量、朝向或箱子位置,只保留本题实际需要的状态信息。只有到达完全相同的状态,较高代价记录才可舍弃。所有操作代价都大于零,因此首次取出的完成状态给出本规则下的最低总价;可能存在其他并列最优路线。
动手复核时,先在C6标出初始状态,沿逐步记录逐格检查墙、边界和机关条件。到A1附近也不要省略最后一次检查。然后任选一处普通空地临时改成墙,重新判断原路线是否还成立;答案变化要从被改变的连接解释,不要把原解直接搬到新图。