2017-04-27 2 views
0

여러 솔루션을 사용하여 C# (Unity의 경우)에서 브레이드 미로를 프로그래밍하는 방법은 무엇입니까?다중 경로 및 막 다른 골목에서 "미로"를 만드는 방법은 무엇입니까?

간단한 브레인 연구에서 이해할 수있는 브레이드 미로는 순환을 허용하는 재귀 미로의 한 유형으로 막 다른 길을 의미하지 않습니다.

내가 찾은 가장 가까운 대답은이 스레드에서 more than one successful path을 만드는 방법을 다루는 것이지만 두 가지를 결합하는 것은 "완벽한"미로를위한 스레드에 사용 된 예제와 같습니다. 다음 단계에 의해

당신이 처음부터 끝까지 여러 성공적인 경로를 얻을 수 있습니다 : 당초 목표를 잡고 (intially 시작에 불과 세포 유지) 시작을 목표 (:

  1. 세 가지 세트로 미로 세분 세포), 발견되지 않은 (나머지는 모두).
  2. 처음 또는 목표 세트의 셀과 발견되지 않은 세트의 셀 사이에서 무작위로 벽을 제거하고 새로 발견 된 셀을 해당 세트로 이동합니다.
  3. 각 셀이 시작 또는 목표 세트에있을 때까지 반복합니다.
  4. 처음부터 끝까지 경로를 원하는만큼 두 영역 사이에 벽을 많이 제거하십시오. 내가 필요로하는

다시 가고 편조 미로로 돌려 모든 막 다른 골목을 삭제하고 내가 설정 될 수있는 5 단계입니다! (미로 크기가 n * n이라고 가정).

답변

1

가장 쉬운 방법은 미로가 건설 될 때 막 다른 길을 추적 한 다음 미로가 완성 된 후 각 막 다른 곳의 세 벽을 제거하여 다른 일부와 연결되도록합니다 미로의. 이것이 미로를 깨뜨리지 않고 어떤 식 으로든 할 수없는 막 다른 길의 구성이있을 수도 있지만 그런 예를 생각해 낼 수는 없습니다.

+0

어떤 방법 으로든이 코드 예제를 제공 할 수 있습니까? – ryanhagz

+1

@ryanhagz SE는 코드 작성 서비스가 아닙니다. 여기서 정보를 얻으세요. 문자 그대로 기존의 미로 알고리즘 *을 사용하면 막 다른 길을 제거 할 수 있습니다. – Draco18s

관련 문제