A Quoridor AI in progress written in C++.
- Create class KNOWLEDGE which will be used from IA to play and Game to grow it.
- Create MAP KNOWLEDGE <board picture(own wall remain, opp wall remain, own position, opp. position, WALL_LIST), MOVE_STATISTICS_LIST >
- Create SET WALL_LIST
- Create MAP MOVE_STATISTICS_LIST <move, statistics(total, win, lose, moves to win/lose average)>
- Constructor need move list.
- Method moveList take a "board picture" and return a MOVE_STATISTICS_LIST
- Method moveStatistics take a "board picture+move" or "MOVE_STATISTICS_LIST+move" and return statistics
- Method winMove take a MOVE_STATISTICS_LIST and return a move
- Method loseMove take a MOVE_STATISTICS_LIST and return a move
- Method drawMove take a MOVE_STATISTICS_LIST and return a move
- IA uses KNOWLEDGE map to play (define game style from hash table)
- Fill KNOWLEDGE with saved game.
- Define DISCOVER IA : try to play never played or the least played move. Use to increase DATABASE.
- Define WINNER IA : try to play the best move or surrend if no move is winable. Customize with minimum win rate to play.
- Define ROMANTIC IA : try to play move with the worst draw rate or surrend. Customize with maximum draw rate to play.
- Define MODEST IA : try to play move with the worst lose rate or surrend. Customize with maximum lose rate to play.
- scan saved game and show equivalent game files.
- Create class ANALYTICS which will be used from IA to play.
- Create several features as Lisa Glendenning's thesis.
- Create several features as Mertens agent.
- Create SET WALL_LIST
- Create SET PAWN_LIST
- Constructor need move list.
- Method add take a feature and its coefficient to apply for evaluations
- Method evaluate take a "board picture+move" and return score
- Define ??? IA : define an analytic IA.
- Add PDCurses as submodule
- Make some draft to display board
- Add Display mother class and PDCurses as child
- Use Display from Board class to show evolution of board in real time
- Discard std::cout display with move method.