WsIlgPebybopietb
07-22 20:44
2楼
这题A中的标准答案六步的解法描述有些问题。
题目:
请帮我求解下面这道8×8棋盘谜题,并尽量求出最少步数。如果无法证明最优,请给出一条可行解
坐标规定:
行号从上到下为1~8。
列号从左到右为1~8。
方向分为上、右、下、左。
棋盘上共有2枚步兵、1枚弓兵、2枚骑兵。
同兵种的棋子可以互换,只需最终兵种、位置和方向与目标完全一致。
初始状态:
步兵A:第1行第3列,朝下。
弓兵:第4行第3列,朝上。
骑兵A:第4行第8列,朝左。
骑兵B:第8行第1列,朝右。
步兵B:第8行第8列,朝上。
目标状态:
步兵:第7行第3列,朝下。
弓兵:第4行第1列,朝右。
骑兵:第5行第2列,朝右。
骑兵:第8行第6列,朝左。
步兵:第1行第8列,朝上。
每完成一次棋子的移动或弓兵旋转,计为1步。
规则一:步兵
步兵只能沿当前朝向直线前进。
可以停在前方任意一个空格,但不能越过其他棋子。
如果步兵最终停在紧邻另一枚棋子的位置,则被靠近的棋子顺时针旋转90度。
步兵自身方向不变。
规则二:骑兵
骑兵可以沿当前朝向直线移动到任意可到达位置。
骑兵也可以先原地转身180度,再沿转身后的方向移动;转身和移动合计为1步。
如果前方遇到一枚棋子,骑兵可以推动它一起直线前进。
一次只能推动一枚棋子,不能同时推动两枚。
被推动棋子的方向不变。
普通前进时骑兵方向不变;选择转身冲锋后,骑兵最终方向变为原方向的反方向。
规则三:弓兵
弓兵自身不能移动位置。
每次操作可以让弓兵旋转90度、180度或270度,计为1步。
旋转后,寻找弓兵新朝向直线上的第一枚棋子。
如果存在目标棋子,该棋子会相对于自身朝向向右横移一格,并旋转180度。
如果右侧格子无法进入,则尝试向左横移一格,并旋转180度。
如果左右两侧都无法进入,则目标棋子只旋转180度、不移动。
弓兵与目标之间不能隔着其他棋子;只影响新朝向上遇到的第一枚棋子。
请输出:
一条从初始状态到目标状态的逐步解法。
每一步写清楚操作的棋子、移动终点或旋转角度。
每一步后列出所有受影响棋子的位置和方向变化。
验证最终状态与目标完全一致。
给出最少要几步,不需要验证
首先原始位置是
- 步兵A : (1, 3), 朝下
- 弓兵A: (4, 3), 朝上
- 骑兵A : (4, 8), 朝左
- 骑兵B : (8, 1), 朝右
- 步兵B : (8, 8), 朝上
标准答案中第一步:
1. 第4行第8列的骑兵A向左移动到第4行第2列。
同时把弓兵(A)从第4行第3列推到第4行第1列。
此时弓兵(A)为(4,1)朝上,骑兵A为(4,2)朝左
然后是第二步:
2. 弓兵(A)(4,1)顺时针旋转90°,变为朝右。
弓兵(A)(4,1)影响第4行第2列的骑兵A(K1)(4,2)朝左,使其移动到第5行第2列,并翻转为朝右。
但是依照规则三里的说明:
规则三:弓兵
旋转后,寻找弓兵新朝向直线上的第一枚棋子。
如果存在目标棋子,**该棋子**会相对于**自身朝向**向右横移一格,并旋转180度。
因为此时弓兵(A)(4,1)直接朝向的骑兵A(4,2)是朝左的,相对于它的面向,向右横移一格,就应该是(3,2)才对。这一步错,后面按照这个‘标准答案’就需要再操作这个骑兵去真正的目的地(5,2),这个方案里就不止6步了,毕竟后面的步骤中没有再操作这个骑兵A。
但是话又说回来了,如果按照标准答案的模型的理解,所谓自身朝向其实是指弓兵A(4,1)的话,那么弓兵A转了身朝右,相对弓兵A自身的右方向,它所影响的那个棋子骑兵A(4,2)向右横移一格,也能到(5,2)。但是我理解多次,依然觉得按照这个语境描述:
如果存在目标棋子,该棋子会相对于自身朝向向右横移一格,并旋转180度。
骑兵A(4,2)朝向左,受弓兵A的影响,还是应该去(3,2)才对