답변:
미로를 만드는 여러 가지 방법이 있습니다. 여기에 그 목록과 설명이 있습니다 : http://www.astrolog.org/labyrnth/algrithm.htm
"완벽"에 설명 된 것을 사용했다고 생각합니다.
나는 Kruskal의 알고리즘이 만들어내는 단단한 상처 미로를 선호합니다.
Kruskal의 알고리즘에 대한 표준 설명은 데이터 구조 선택에 대한 펑크에 의존하면서 초심자를 혼란스럽게하는 설명 모호성을 초래하면서 그래프의 위치를 위치 그룹과 구별하지 못한다는 점에서 부적절합니다. 그러므로 나는 Kruskal의 용어를 거부합니다.
다음 용어를 사용합니다.
그리고 그로부터 우리는 다음을 얻습니다.
Wikipedia는 미로 생성 에 대한 훌륭한 자료를 가지고 있습니다. 나는 무작위 Prims 알고리즘 을 사용 하여 훌륭한 결과를 얻었습니다. 나눗셈 알고리즘은 흥미롭게 보이지만 결코 사용하지는 않았습니다.
다음은 prim 's의 위키 백과 예제입니다.
쉬운 방법 중 하나는 북쪽 벽과 서쪽 벽의 목록을 만든 다음 순열시키는 것입니다. 각 방에 번호를 부여하십시오. 그런 다음 두 방에 같은 번호가없는 한 목록에서 벽 중 하나를 날려 버린 다음 같은 번호를 가진 다른 모든 방에 숫자 중 하나를 전파하십시오. 벽이 다 떨어질 때까지 계속 가십시오. 이것은 사각형 미로 또는 실제로 "잠재적으로 연결된 방"목록을 제공 할 수있는 다른 미로에서 작동합니다. 또한 프로그램하기가 매우 간단합니다.
또한 Roguelike 개발에 사용 된 알고리즘 중 일부를 살펴 보겠습니다. Rogue Basin 에는 좋은 시작 자료가 있습니다
여기에 좋은 실행이 있습니다 : https://journal.stuffwithstuff.com/2014/12/21/rooms-and-mazes/
기본 단계는 다음과 같습니다.
당신은 내가 어느 것을 사용했는지 물었으므로 대답 할 것입니다. Rootbeer Games의 미로 게임에서 Recursive Backtracker Algorithm 을 사용했습니다 .
이것은 내가 알고리즘을 사용했다는 증거입니다. 알고리즘을 내 작업의 광고로 보지 마십시오.