1

我有一个 2D 网格供机器人导航。我需要找到两点之间的最短路径,startNode 和goalNode。网格由anxn 多维数组表示。

机器人可能的动作(过渡)

  • 上 [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

谢谢,

4

1 回答 1

1

检查是否朝某个方向移动会让你出界。

所以它看起来像

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";

  }

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

于 2012-05-22T19:19:50.127 回答