我正在制作 Pac-Man 游戏,目前正在研究 Ghosts 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 语句来检查当前顶点是否在图的边缘,我将如何解决这个问题?