我有一個簡單的遊戲,我想拿到2分發現在二維數組兩點之間的最短路徑
地圖由二維數組matrix: Node[][]
的,
class Node{
index: {
x: number,
y: number
},
isAvailable: boolean
}
該算法應該返回關於節點可用性的最短路徑。
例如樹木標記爲不可用node.isAvailable = false
我卡上實現該算法該矩陣
我試圖用Dijkstras算法從here,但我無法弄清楚如何應用它,我did
const graph = new Dijkstra();
//convert the matrix (2d array) to graph
matrix.map((row) => {
row.map((node: Node) => {
let x = node.index.x;
let y = node.index.y;
graph.addVertex(x + ":" + y, {x: x, y: y});
});
});
console.log(graph.shortestPath('0:0', '5:5'));
//the output was ['0:0'] (definitly not the answer)
如何在這個矩陣上應用算法?
PS這裏是我的全部code
我沒有得到它,你用哪種算法? –
@Murhaf Sousli我自己想出了算法。這很簡單,它的工作原理。我確信有人在我面前提出這個問題,也許在某個地方有一個學名。 – Muposat
它不這樣工作,我需要一個A.I.算法 –