2D网格导航可能的操作

时间:2012-05-22 19:09:19

标签: java grid 2d breadth-first-search

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

机器人可能采取的行动(过渡)

  • 向上[0,1]
  • down [0,-1]
  • 左[-1,0]
  • right [1,0]

其中[x,y]

如果方法没有超出多维数组边界,我将如何构造一个返回上述操作之一的方法?

getAction(x,y)
get potential action from transition
if valid action - in array bounds
return action

谢谢,

1 个答案:

答案 0 :(得分: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";

  }

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