미로 자동 생성 알고리즘

4998 단어 Unity
이 보도는 유니티 게임 프로그래밍 성경의 내용을 해설하였다
https://www.amazon.co.jp/Unity%E3%82%B2%E3%83%BC%E3%83%A0-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%83%BB%E3%83%90%E3%82%A4%E3%83%96%E3%83%AB-%E5%90%89%E8%B0%B7-%E5%B9%B9%E4%BA%BA/dp/4862464130

미로 자동 생성 알고리즘


이번에는 저희가 매번 미로에 들어갈 때마다 랜덤으로 만들어진 알고리즘에 대해 설명을 드리도록 하겠습니다.
이렇게 하면 게임을 반복하는 것을 피할 수 있어 게임이 지치지 않게 할 수 있다

계산법


이번에 소개한 방법은 벽을 쌓아 방을 짓는 것보다
한쪽 벽의 육상 경기장에 구멍을 파서 미로를 만들다

이번에 사용한 알고리즘은 지도의 폭을 홀수로 설정하는 것이다×홀수일 때만 돼요.
일단 랜덤 홀수.×홀수의 공백 선택(배열에서 짝수)×짝수 번호
이번에는 3.×세 번째 가운데 송어를 사용하고 싶어요.

1-1 시작 지점


먼저 파낸 벽이 하얘졌어요.
여기서 구멍을 파기로 한 룰입니다.
파낸 구멍에서 위아래 좌우로 두 칸 정도 벽이 있다고 판정하면 검은색 화살표입니다.
2 네모난 머리에 벽이 없으면 파란색 화살표.

1-2 발굴


검은색 화살표 중 하나를 무작위로 선택해서 그 방향에 벽을 두 칸 파라

1-3굴진


파낸 곳의 송어가 이번이라면 위에서 가로로 세 번째 송어를 세어라
검정색 화살표가 다시 나타나지 않을 때까지 화살표를 반복합니다.

위에는 전진하는 칸이 없고, 아래쪽은 2칸 앞에는 벽이 없기 때문에 파란색 화살표로 변해 좌우로
검정색 화살표가 나타납니다.

오른쪽 방향을 무작위로 선택하면 위의 그림이 됩니다

1-4 최종 형태


전진하는 빈칸의 화살표가 모두 파란색으로 변할 때 끝, 결과

이런 지도를 자동으로 만들었어요.
여기까지가 그래픽입니다. 실제 게임에서 지도를 만들 때를 생각해 보세요.

1-5 게임 적응


우선 이 지도의 칸에 숫자를 그려주세요.
시작점 2, 끝점 3, 벽 0, 발굴 후 1

숫자를 다시 배열하고 숫자에 대응하는 대상을 놓으면 길을 잃을 수 있다

2 불가사의한 미로 같은 방이 있는 지하 감옥 제작


아까 소개한 건 미로일 뿐이에요.
그래서 나는 아까의 알고리즘에 공을 들여 미로의 느낌을 만들고 싶다

2-1 벽 준비


아까와 마찬가지로 p의 너비는 홀수이다×홀수와 시작 위치를 선택하는 방법도 마찬가지다
가운데부터.
이번에 벽을 팔 때의 규칙을 바꾸었다
검은 화살표를 무작위로 진위와 가짜로 나누다
만약 사실이라면 빨간색 화살표로 벽을 파고 가짜라면 파란색 화살표로 빈 칸 옆에 검은색을 칠한다
검은 화살표의 조건은 먼저 칸이 하나 있고 벽이 검지 않다는 것이다

2-2 발굴


이번엔 위쪽과 오른쪽이 진짜고 아래쪽과 왼쪽이 가짜라면

이렇게 하면 캐기도 하고 검은 송어도 캐기도 해요.

2-3굴진


그리고 아까 파낸 송어를 기준으로 똑같은 일을 반복합니다.

벽이 없는 곳에서는 화살표가 파랗게 변하는데, 원래는 가짜였다.
3×1칸 정도의 화살촉은 가짜입니다
5×만약 세 칸의 위아래 화살표가 사실이라면

이렇게 파내도 돼요.

2-4 최종 형태


이 동작을 반복한 결과는 다음과 같다(로 가정)

2-5 게임 적응


기점 2, 종점 5, 벽 0
여기까진 똑같지만 미로풍으로 만들기 위해
통로와 방을 분리하다
판정 화살촉, 붉은 화살촉으로 벽을 파면 2칸 전방 3, 1칸 전방 1
3은 방, 1은 통로, 검은색 벽은 4
숫자에 맞게 지도에 그린 것은

되다
숫자를 다시 배열하고 숫자에 대응하는 대상을 놓으면 길을 잃을 수 있다
0과 4를 벽으로, 1은 통로로, 2는 기점, 3은 방, 5는 종점

2-6 보충 설명


검은 벽이 늘어나는 이유


판정했던 길을 다시 판정하지 않기 위해서.

좋은 웹페이지 즐겨찾기