This bot is designed to play the Amazons board game against other players or bot which are communicating through the server which is automatically configured in the included cosc322-2015 library.
MiniMax Algorithm
- Separate parallel and sequential minimax search implementations with Alpha-Beta pruning
- Iterative deepening implemented for both sequential and parallel searches
- Uses memory consumption and computation time as cut-off conditions
Evaluation Functions
- Complex Evaluation Function based on Martin Muller and Theodore Tegos' minimum distance evaluation function - http://library.msri.org/books/Book42/files/muller.pdf
- Minimum distances on board are efficiently calculated and colored with Iterative Deepening
- Simple Evaluation Function based on which side has the most available moves
Object Oriented Design
- Leveraged abstract classes to create a framework for performing the searches
- Custom XML parser using JAXB - Replaces nanoXML implementation used in the example code provided - Object Oriented - Transformation layer between our internal board layout and the standard layout - Simple unmarshaling and marshaling of XML strings
Utilities
- Illegal move detection
- End-of-game state checks
- Remote play via the Amazon’s game server
- Method for getting all possible moves for each queen
- Record time-to-make-move and display after each turn with other statistics - Used in cut-off conditions for iterative deepening minimax search