A checkers game with a Minimax AI opponent.
This opponent uses the Minimax algorithm with alpha-beta pruning as its strategy to select moves. The programming approach utilised the object-oriented paradigm to abstract functionality efficiently. This resulted in a program with eight classes to handle game logic and the user-interface. Additionally, two enum classes were used to store the player and difficulty variables. Out of the eight classes, six of them handled the game logic, these were: Checkers, Tile, Piece, Move, MoveManager and OpponentAI.