나는 팩맨 게임을 만들고 있는데, 나는 현재 유령 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)};
}
}
처럼 각 정점에게 가장자리를 모두 지정하려합니다. 현재 vertex가 그래프의 가장자리에 있는지 확인하기 위해 if 문을 여러 개 넣지 않고이 문제를 해결할 수 있습니까?
if 문이 많이 필요하지 않습니다. 그냥 4. 다른 한편으로는 그들을 저장할 필요가 있습니까? 필요에 따라 단순히 매트릭스에서 가져 오지 않는 이유는 무엇입니까? –
각 모서리마다 하나씩 그리고 모서리가 아닌 각 모서리마다 하나씩 –
오류 번호. 북쪽에 하나, 남쪽에 하나, 서쪽으로 하나, 동쪽으로 하나씩 필요합니다. –