2D 网格导航可能的操作



我有一个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";
  }

当然,这总是会尝试先向上移动,然后向下移动,然后向右移动,然后向左移动。因此,您可以更改此代码以满足您的需求。

最新更新