A* 알고리즘에서
10000
00000
00000
00000
00001
0 = 이동가능 타일
1 = 시작, 목표 지점
일때 직각으로 이동하면 코드 잘 못 짠거야?
지그제그로 움직여야되?
총 코스트는 동일한데 왜 잘못된건지 이유 좀 알려줘
참고로 4방향 검출임, 8방향 아님, 휴리스틱은 맨하탄 사용했고
A* 알고리즘에서
10000
00000
00000
00000
00001
0 = 이동가능 타일
1 = 시작, 목표 지점
일때 직각으로 이동하면 코드 잘 못 짠거야?
지그제그로 움직여야되?
총 코스트는 동일한데 왜 잘못된건지 이유 좀 알려줘
참고로 4방향 검출임, 8방향 아님, 휴리스틱은 맨하탄 사용했고
4방향은 지그제그로 감
그래프노드 연결한 코드올려봐
지그재그로 가나 직각으로 가나 코스트가 똑같으니까..
4방향에 맨하탄이면 왼쪽이랑 위쪽이랑 코스트 동일하고 너가 위쪽 방향을 먼저 탐색하게 짜면 당연히 위로 쭉 갔다가 왼쪽으로 쭉 가도록 결과가 나오는거지 8방향으로 짜보셈
지그재그나 직각이나 왼쪽으로 4칸, 위로 4칸 이동해야 되서 똑같이 거리는 8로 똑같잖아
내가 만드는게 4방향인데도 8방향으로 짜라는거야? 움직임은 4방향으로 가고 코스트만 8방향으로 계산하라는거?
왼쪽칸으로 가든 위칸으로 가든 맨하탄 거리는 똑같이 1 줄어드니까 왼쪽, 위 둘 중 어디로 가든 상관없는데.. 여기서 너가 지그재그로 움직이게 하고 싶으면 다른 코스트를 추가해주거나 그러면 될듯? 8방향이면 대각선으로 가는게 코스트가 확 주니까 대각선으로 갈거고..
A*자체가 원래 8방향 알고리즘이잖아
직각으로 가도 알고리즘이 틀린거는 아니라는 얘기지