재귀호출을 활용한 GUI 랜덤미로 생성
개요 이번엔 Python, PyQt5를 이용해 랜덤 미로 생성기 (Maze Generator) 를 만들어 보았습니다. 자세한 내용은 소스코드 분석을 참조하기 바라며, 동작방식은 아래와 같습니다. 화면에 표시되는 위젯(윈도우)을 15x15 크기로 잘라, 작은 격자 사각형을 2차원 리스트에 저장 해 둡니다. 미로 생성이 시작되면 현재 격자의 행,열에서 이동가능한 방향 (상, 하, 좌, 우)을 랜덤으로 선택해 이동합니다. (단, 이미 방문한 곳이 아닌 경우, 재귀호출 , Push Stack ) 만약 더 이상 이동가능한 방향이 없는 경우는 재귀호출의 스택이 풀리며 ( Pop Stack ) 퇴각 검색 ( Backtrack )이 진행되고, 이동가능한 방향이 있는지 다시 찾는 원리로 모든 격자를 방문하게 됩니다. 15 X 15 크기의 랜덤 미로 생성. (사이즈 변경가능) DFS (Depth First Search), 재귀호출을 이용해 구현. 미로 진행 방향에 따른 벽 생성 및 벽 삭제. (상,하,좌,우)