我有一个2D网格,供机器人导航。我需要找到两个点之间的最短路径,startNode和goalNode。网格由n x n多维数组表示。
机器人可能采取的行动(过渡)
其中[x,y]
如果方法没有超出多维数组边界,我将如何构造一个返回上述操作之一的方法?
getAction(x,y)
get potential action from transition
if valid action - in array bounds
return action
谢谢,
答案 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";
}
当然,这总是先尝试向上移动,然后向下移动,然后向右移动,然后向左移动。因此,您可以更改此代码以满足您的需求。