我有一个2D网格供机器人导航。我需要找到两点之间的最短路径,startNode和goalNode。网格由 n x n 个多维数组表示。
机器人可能的动作(过渡)
- 向上 [0,1]
- 向下 [0,-1]
- 左 [-1,0]
- 右 [1,0]
其中 [x,y]
如果该方法不超过多维数组边界,我将如何构造一个方法来返回上述操作之一?
getAction(x,y)
get potential action from transition
if valid action - in array bounds
return action
谢谢
检查向
某个方向移动是否会让你超出界限。
所以它看起来像
String move()
{
if(y+1<n)//Can Move Up
return "up";
if(y-1>=0)//Can Move Down
return "down";
if(x+1<n)//Can Move Right
return "right";
if(x-1>=0)//Can Move Left
return "left";
return "can't move";
}
当然,这总是会尝试先向上移动,然后向下移动,然后向右移动,然后向左移动。因此,您可以更改此代码以满足您的需求。