Minichess is a simplified, shorter version of Chess played on a 6 x 5 board. This project involves developing an AI program that can effectively play Minichess against a human or another AI opponent. The project aims to showcase the use of search algorithms, game tree exploration, and strategic decision-making using advanced algorithms like Minimax with alpha-beta pruning. Additionally, the project includes the development of a user interface for interaction.
- Game Tree Search: Implementation of a suitable search algorithm for exploring the game tree.
- Minimax Algorithm: Running the minimax algorithm on the game tree to determine the optimal move.
- Alpha-Beta Pruning: Implementation of alpha-beta pruning to enhance the efficiency of the search process by reducing the number of nodes evaluated.
- Evaluation Function: Design and implementation of an effective evaluation function to assess the quality of intermediate game states.
- Early Stopping Mechanism: Inclusion of an early stopping mechanism to enable the AI to abort the search process and return the minimax value based on the evaluation function.
- User Interface: A functional user interface for gameplay. An aesthetic or graphical user interface is encouraged and will earn extra credits.
- Version Control: The project must be maintained using Git or a similar version control system.
- Develop a computer program capable of playing Minichess effectively against a human or another AI.
- Implement the minimax algorithm enhanced with alpha-beta pruning for optimal move selection.
- Design a robust evaluation function to estimate the strength of board positions.
- Create a user-friendly interface for gameplay interaction.
- Maintain comprehensive project documentation and version control through a Git repository.
- Implementation of a suitable search algorithm to navigate the game tree efficiently.
- Running the minimax algorithm to select the best move, ensuring the AI plays strategically.
- Integrating alpha-beta pruning to reduce the computational cost and time by minimizing the number of nodes evaluated.
- Developing a strong evaluation function to evaluate board positions and guide the minimax decision-making process.
- Implementing a mechanism to halt the search process early when needed, returning minimax values based on the current board evaluation.
- A basic user interface is required for gameplay interaction.
- An advanced graphical interface is encouraged for extra credit and a better user experience.
- The project must be maintained in a Git repository to track changes, facilitate collaboration, and ensure version control.
This project combines strategic AI development with practical implementation of search algorithms and user interface design, creating a comprehensive AI program capable of playing Minichess effectively.