-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
- Search for best algorithms
- Try & set for certain one
- Modulize & Visualize
GPT
필요한 구조 및 단계:
- 퍼즐 상태 표현: 게임 상태를 효율적으로 표현할 수 있는 데이터 구조를 정의해야 합니다. 현재 Game 클래스에서 self.puzzle이 리스트의 리스트로 퍼즐 상태를 나타내고 있습니다.
- 상태 탐색: 가능한 모든 상태를 탐색하기 위한 알고리즘을 구현해야 합니다. BFS(너비 우선 탐색)나 A* 알고리즘을 사용할 수 있습니다.
- 상태 전이 함수: 현재 상태에서 가능한 모든 유효한 이동을 생성하고, 그 결과로 새로운 상태를 생성하는 함수를 구현해야 합니다.
- 상태 방문 여부 추적: 이미 방문한 상태를 추적하여 중복 탐색을 피하기 위한 자료구조(예: 해시 테이블)가 필요합니다.
- 최적 경로 저장: 목표 상태에 도달했을 때, 그 경로를 재구성하기 위한 기능이 필요합니다.
코드 구조 제안:
- Solver 클래스 추가: 최적의 알고리즘을 구현하는 클래스를 생성합니다. 이 클래스는 게임 상태를 입력으로 받아서 최적의 이동 순서를 출력합니다.
- State 클래스 강화: 현재 게임 상태를 표현하는 State 클래스를 만들어서 상태 비교, 해시화 등이 가능하도록 합니다.
- 알고리즘 선택 기능: 다양한 알고리즘(BFS, DFS, A*)을 테스트해 볼 수 있도록 옵션을 제공합니다.
Metadata
Metadata
Assignees
Labels
No labels