This is a GUI-based checkers game where the player competes against an AI opponent powered by the Minimax algorithm with Alpha-Beta pruning. The AI evaluates board positions and selects optimal moves based on a heuristic evaluation function. The game is implemented in Python.
- Graphical User Interface (GUI) for an interactive checkers experience.
- AI Opponent using the Minimax algorithm with Alpha-Beta pruning for optimized decision-making.
- Heuristic Evaluation Function to assess board positions.
- Transposition Table to store previously computed positions and improve performance.
- Different Modes that influence AI behavior and difficulty.
The AI determines the best move using the Minimax algorithm, which:
- Explores possible game states up to a defined depth.
- Evaluates each position using a custom heuristic function.
- Uses Alpha-Beta pruning to optimize the search and eliminate unnecessary computations.
- Stores board positions in a transposition table to avoid redundant calculations.
The heuristic function considers:
- Piece count (regular pieces and kings).
- Board control (central vs. edge positions).
- Mobility (number of possible moves).
- Threats and vulnerabilities.
- Python 3.x
- Required libraries:
pygame,copy
- Clone this repository:
git clone https://github.com/ognjenvujovic04/asp-checkers-bot.git
- Install dependencies:
pip install pygame
- Run the game:
python main.py
- Enhance AI difficulty settings.
- Support multiplayer mode.
The heuristic evaluation function used in this project is adapted from kevingregor/Checkers.
This project is open-source and available under the MIT License.


