我正在做一個pacman遊戲,我目前正在研究鬼魂ai。我正在計劃使用Dijkstra的算法進行尋路。我的問題是,當我的遊戲加載時,圖形的頂點存儲在矩陣中。我想每個頂點分配所有的邊緣喜歡這個轉換頂點[]到圖
for(int x = 0; x<40; x++)
{
for(int y = 0; y<40; y++)
{
Vertex vertex = map[x][y];
vertex.adjacencies = new Edge[]{new Edge(map[x-1][y], 1), new Edge(map[x+1][y], 1), new Edge(map[x][y-1], 1), new Edge(map[x][y+1], 1)};
}
}
的問題是,它有時拋出一個數組越界異常。我怎樣才能解決這個問題,而不需要大量的if語句來檢查當前頂點是否在圖的邊上。
你不需要大量的if語句。只是4.另一方面,你需要存儲它們嗎?爲什麼不根據需要從矩陣中獲取它們呢? –
更多一個爲每個角落,然後一個爲每個邊緣不是一個角落 –
錯誤號碼。你需要一個,如果是北方,一個是南方,一個是西方,一個是東方。 –