작성
·
198
0
neighbor 경로 비용 계산 부분에서 gCost는 왜 사용되지 않는 이유가 있는건가요?
hCost를 제곱을 하는 이유가 뭔가요?
int gCost = 0;
int hCost = 10 * ((dest.Y - neighbor.Y) * (dest.Y - neighbor.Y) + (dest.X - neighbor.X) * (dest.X - neighbor.X));
아래 부분을
int value = 0;
if (openList.TryGetValue(neighbor, out value) == false)
value = Int32.MaxValue;
이렇게 바꿔도 상관 없나요?
int value = Int32.MaxValue;
openList.TryGetValue(neighbor, out value);
답변 1
1
1.
A*에서 평가식은 본인 마음대로 정의하면 됩니다.
보통 휴리스틱 h는 이동 목적지까지의 거리를,
g 쪽에서는 원래 위치에서 현 경로 오기까지의 cost를 넣지만
이동 경로를 보고 적당히 조절하면 됩니다.
제곱하는 이유는 거리 계산식에서 거리 제곱을 사용하는데
distance^2 = deltaX^2 + deltaY^2 이기 때문입니다.
2.
네 상관 없습니다.