私はパックマン ゲームを作っており、現在ゴースト AI に取り組んでいます。経路探索にはダイクストラのアルゴリズムを使用する予定です。私の問題は、ゲームが読み込まれると、グラフの頂点がマトリックスに格納されることです。このように各頂点にすべてのエッジを割り当てようとしています
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 ステートメントを入れずに、これを修正するにはどうすればよいでしょうか?