document updated 11 years ago, on Oct 29, 2013
The bare-minimum features needed to make a game-solver for a puzzle (a single-player perfect-information deterministic game):
- an object that remembers the current state of the board
- a function that can perform a move on the current board; it can determine whether that specific move was legal or illegal
- a function that can enumerate all possible moves on the current board
- a function that can determine if the current board state is a winning solution
- a tree-traversal algorithm (DFS, BFS, or IDDFS) that can traverse the tree
- when a winning solution is found, it must be able to print out the list of moves that were made to reach that position