모든 일반 경로가 차단되면 장애물을 통과하는 최단 경로를 찾습니다


10

타워 디펜스를 만들고 있는데 기본적인 길 찾기가 있지만 문제가 있습니다.

경로를 차단 가능하게 만들고 싶습니다. 블록이 발생하면 주자는 차단 탑을 공격합니다.

그래서 필요한 것은 가장 짧은 길을 찾는 방법이며, 가장 중요한 것은 가장 적은 수의 탑을 가지고 있습니다.

어떻게해야합니까?


1
걸을 수있는 경로 내에서 충돌을 감지하지 않겠습니까?
Prix

블로킹 타워는 파괴 가능하기 때문에 실제로 경로가 있습니다. 그들을 통해 이동하는 비용은 막힌 길을 따라 이동하는 것보다 훨씬 높습니다. (아래 코드 레인저의 답변 참조)
bummzack

답변:


21

경로 점수에서 탑을 통과하는 것은 많은 타일을 통과하는 것과 같습니다. 일반적으로 주변을 둘러 보려고 시도하지만 그러한 경로가 없으면 출력은 여전히 ​​가장 적은 수의 장애물을 통과합니다. 페널티를 조정하여 원할 경우지도 전체를 돌아 다니는 대신 통과 할 수도 있습니다.


이 구현의 코드 예제를보고 싶을 것입니다. 간단하고 강력합니다.
DFectuoso

3
A * 알고리즘 ( en.wikipedia.org/wiki/A * _search_algorithm)은 경로 비용과 함께 작동합니다. 타워를 통과하는 세그먼트의 비용을 늘리십시오. 그러면 에이전트는 타워를 피하려고 시도하거나 타워를 공격하는 것이 "더 저렴"하면 타워를 공격합니다. A * 알고리즘의 아이디어는 비용을 최소화하는 것이므로 경로 비용을 조정하여 원하는 것을 달성 할 수 있어야합니다.
bummzack

이것은 내가 생각하지 못했던 훌륭한 솔루션입니다. 감사합니다!
jhocking

참고 사항 : 경로가 명백히 차단 된 경우 A * 알고리즘에 사용되는 추정치를 증가시키지 않고 타워 노드에 큰 이동 비용을 제공하면 상담원이 장애를 결정하기 전에 장애물의 일부에있는 모든 노드를 확인해야합니다. 포인트를 통해. 노드 및 에이전트의 양에 따라 알고리즘이 엄청나게 느려질 수 있습니다.
Martin Sojka
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.