2012-05-22 73 views
1

我有一個2D網格,可供機器人導航。我需要找到兩個點之間的最短路徑,startNode和goalNode。網格由n×n多維數組表示。2D網格導航可能的動作

機器人可能的動作(過渡)

  • 向上[0,1]
  • 向下[0,-1]
  • 左[-1,0]
  • 右[1,0 ]

其中[X,Y]

我將如何構造一個方法來返回T的一個如果它不超過多維數組邊界,他會採取什麼行動?

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

    } 

這當然總是試圖先動起來,再放下,然後用鼠標右鍵,然後離開了。因此,您可以更改此代碼以符合您的需求。

+0

我有類似的解決方案,但似乎很冗長......謝謝 – Hmm