相关疑难解决方法(0)

查找二维数组中两点之间的最短路径

我有一个简单的游戏,我试图找到两点之间的最短路线

在此输入图像描述

该地图由二维数组组成matrix: Node[][]

class Node{
   index: {
     x: number,
     y: number
   },
   isAvailable: boolean
}
Run Code Online (Sandbox Code Playgroud)

该算法应返回关于节点可用性的最短路径。

例如,树被标记为不可用node.isAvailable = false

我一直致力于实现这个矩阵的算法

我尝试从这里使用Dijkstras算法,但我不知道如何应用它,我做到了

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)
Run Code Online (Sandbox Code Playgroud)

如何将该算法应用于该矩阵?

PS这是我的完整代码

search multidimensional-array typescript

5
推荐指数
1
解决办法
3940
查看次数