-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
A* 구현에서
21.05.18 22:46 작성 조회수 83
0
마지막 강의 6분 50초 쯤 부터 보시면
if (open[nextY, nextX] < G + H)
continue;
라는 코드를 짜셨는데,
여기서 open[nextY, nextX]는 (nextY, nextX)좌표의 이미 찾은 F값이고,
G + H 는 방금 새로 구한 F 값이라고 하셨는데요
if (closed[nextY, nextX])
continue;
위 코드로 이미 F값을 한 번 구했던 노드로 가는 건 스킵을 했는데
어떻게 이전에 구했던 F값과 새로 구한 F값을 비교할 수 있는지 궁금합니다.
답변을 작성해보세요.
0
Rookiss
지식공유자2021.05.19
안녕하세요,
비슷한 질문이 이전에 올라와서, 링크로 대체 드립니다.
closed까지 갔으면 진짜 방문이 끝난 것이지만,
open은 그냥 '예약'만 한 상태이고
실제로 방문하기 직전에 다른 후보를 찾을 수도 있습니다.
https://www.inflearn.com/questions/100852
답변 1