머릿속의 지도와 감각으로 미로를 탈출하는 텍스트 형식의 콘솔 게임
- 설정한 크기에 맞는 미로 랜덤 생성
- 생성된 미로를 확인하고 게임 시작
- 텍스트 형식으로 미로 진행 및 탈출
| 설명 | 미로 생성 |
|---|---|
| 이미지 | |
| 기능 | 입력한 크기의 미로 랜덤 생성 |
| 활용 알고리즘 | SideWinder -> Prim 변경 |
| 설명 | 최단 거리 |
|---|---|
| 이미지 | |
| 기능 | 입구부터 출구까지의 최단 거리 |
| 활용 알고리즘 | BFS |
최단 거리를 활용한 기능
- 랜덤으로 출구 배치
| 설명 | 최단 경로 |
|---|---|
| 이미지 | |
| 기능 | 입구부터 출구까지의 최단 경로 |
| 활용 알고리즘 | Backtracking |
최단 경로를 활용한 기능
- 게임 중간에 현재 위치에서 출구까지의 경로 확인
- 자동 탈출
-
기능별로 개발하도록 노력(객체화)
- 효율적인 재사용성과 유지보수
- 예시1) 게임 도중 잘못된 최단 경로를 출력(유지보수)
- 최단 경로를 찾는 코드를 디버깅해서 어떤 문제인지 내부적인 오류 파악
- 최단 경로 기능의 코드만 변경해서 문제 해결
- 빠른 유지보수로 문제 해결
- 예시2) 최단 거리 및 최단 경로 기능(재사용)
- 출구 랜덤 배치
- 미로 생성 시 입구와 출구까지의 최단 거리가 가까우면 출구 재배치
- 미로 생성 시 입구와 출구까지의 최단 거리가 가까우면 출구 재배치
- 게임 중 현재 위치에서 출구까지 경로 출력
- 출구 대신 현재 위치부터 최단 경로 탐색
- 출구 대신 현재 위치부터 최단 경로 탐색
- 자동 탈출
- 최단 경로를 탐색하고 경로 저장 후 저장된 경로를 활용하여 자동 이동
- 최단 경로를 탐색하고 경로 저장 후 저장된 경로를 활용하여 자동 이동
- 세 가지 모두 이미 구현한 기능을 재사용해서 간단하게 새로운 기능 구현
- 미로 생성 알고리즘 변경
- 더 복잡한 미로 생성을 위해 SideWinder -> Prim 알고리즘으로 변경
- TestBoard로 테스트 코드 작성 후 Board 코드 수정
- 효율적인 재사용성과 유지보수
- 다채로운 기능 추가 필요(설명서, 퍼즐 요소 추가, 움직이는 문 등)
- 자동 탐색 기능을 A* 알고리즘으로 변경
- 휴리스틱 함수에 대해서 공부
- 객체화를 통한 재사용성 및 유지보수
- 알고리즘을 프로젝트에 적용
- 자료구조 활용법
- C++ 활용