Files
2610361-maze-runner/README.md
2610361 6847e8fa89 미로 생성·다익스트라 탐색 시각화 앱 구현
- main.py: 기본 템플릿을 200×100 랜덤 미로 시각화 앱으로 교체.
  Flask는 단일 HTML 페이지를 서빙하고, 미로 생성(randomized DFS)·
  다익스트라 탐색·렌더링은 브라우저 <canvas> 위 JavaScript로 처리.
  속도 조절 슬라이더, 미로 재생성/탐색 버튼, 입구·출구·탐색 영역·
  최단 경로 시각화 포함. 배포 규격대로 0.0.0.0:8080 유지.
- README.md: 템플릿 안내에서 앱 기능·알고리즘 설명으로 갱신.
- CLAUDE.md: 배포 규격(0.0.0.0:8080, requirements.txt) 규약 추가.
2026-06-16 17:43:25 +09:00

27 lines
1.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 랜덤 미로 생성 & 다익스트라 탐색 시각화
가로 200칸 × 세로 100칸의 랜덤 미로를 생성하고, 입구(좌상단)에서 출구(우하단)까지의
최단 경로를 다익스트라 알고리즘으로 찾아 시각적으로 보여주는 웹앱입니다.
Flask가 단일 HTML 페이지를 서빙하고, 미로 생성·탐색·렌더링은 모두 브라우저의
`<canvas>` 위에서 JavaScript로 동작합니다 (20,000칸을 부드럽게 애니메이션하기 위함).
## 기능
- **즉시 생성**: 화면에 진입하면 미로가 바로 생성되며, 생성 과정(randomized DFS로
통로를 파나가는 과정)을 단계적으로 빠르게 애니메이션으로 보여줍니다.
- **입구 / 출구**: 좌상단이 입구(초록), 우하단이 출구(빨강)입니다.
- **속도 조절 바**: 미로와 버튼 사이의 가로 슬라이더로 애니메이션 속도를 조절합니다.
진행 중에도 즉시 반영됩니다.
- **미로 재생성** 버튼: 새로운 랜덤 미로를 다시 생성합니다.
- **미로 탐색** 버튼: 다익스트라 알고리즘으로 입구→출구를 탐색합니다.
탐색 영역이 파란색으로 확장되는 과정을 애니메이션으로 보여준 뒤,
최단 경로를 노란색으로 그립니다.
## 알고리즘
- **생성**: randomized DFS(깊이 우선 탐색 기반 백트래킹)로 모든 칸을 연결하는
하나의 완전한 미로(spanning tree)를 만듭니다.
- **탐색**: 모든 통로의 가중치가 1인 다익스트라 알고리즘으로 입구 칸에서 출구 칸까지의
최단 경로를 찾습니다.