강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

우도군님의 프로필 이미지
우도군

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘

A* 구현에서

작성

·

140

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값을 비교할 수 있는지 궁금합니다.

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

안녕하세요,
비슷한 질문이 이전에 올라와서, 링크로 대체 드립니다.
closed까지 갔으면 진짜 방문이 끝난 것이지만,
open은 그냥 '예약'만 한 상태이고
실제로 방문하기 직전에 다른 후보를 찾을 수도 있습니다.

https://www.inflearn.com/questions/100852

우도군님의 프로필 이미지
우도군
질문자

저 그림을 보니깐 이해가 됐네요. 감사합니다.

우도군님의 프로필 이미지
우도군

작성한 질문수

질문하기