Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jai0212/ai-chess-engine
A customizable chess game which allows you to play human vs human, computer vs human and computer vs computer. The computer AI is implemented through the MiniMax algorithm and enhanced with Alpha-Beta pruning.
https://github.com/jai0212/ai-chess-engine
alpha-beta-pruning chess-ai-engine custom-gui java jframe minmax-algorithm
Last synced: about 4 hours ago
JSON representation
A customizable chess game which allows you to play human vs human, computer vs human and computer vs computer. The computer AI is implemented through the MiniMax algorithm and enhanced with Alpha-Beta pruning.
- Host: GitHub
- URL: https://github.com/jai0212/ai-chess-engine
- Owner: Jai0212
- License: mit
- Created: 2024-02-23T04:52:54.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-02-23T07:37:26.000Z (9 months ago)
- Last Synced: 2024-02-24T05:33:36.782Z (9 months ago)
- Topics: alpha-beta-pruning, chess-ai-engine, custom-gui, java, jframe, minmax-algorithm
- Language: Java
- Homepage:
- Size: 61.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# AI Chess Engine Using MiniMax and Alpha-Beta Pruning
A customizable chess game/engine that allows you to play human vs human, computer vs human and computer vs computer. Chess being a zero-sum game, the computer AI is implemented through the MiniMax algorithm and is enhanced using Alpha-Beta pruning.I have implemented my own categories for calculating the value at each stage. Thus, the MiniMax algorithm will look at
future moves (4 moves if depth is 4) and will judge the future moves based on the categories thereby selecting the optimal
move. Despite the large number of possible moves during each chess position, the AI engine has been implemented in such
a way using Alpha-Beta pruning that it analyzes the position and plays the optimal move in almost no time.
## Features
* AI supported chess engine with customizable depth
* Customizable board colours and legal move indicating dots
* Ability to flip the chess board
* Interactive GUI which shows the captured pieces and the moves in chess notation
* Customizable chess engine by altering MiniMax properties
* Readable and simple implementation using OOPs
* All chess moves implemented including en passant, pawn promotion, stalemate and castling
## Technical Aspects, Usage and Acknowledgement
* Moves are calculated using the MiniMax algorithm with a customizable depth to check for the best move possible
* Alpha-Beta pruning is implemented for efficiency and engine optimization
* Code written in Java on IntelliJ
* The GUI was implemented through JFrame in the package javax.swing (preinstalled)To use, just download the code and run the 'Chess' class. There is no need to install anything else. It can be run on any normal
device that supports java for human vs human and upto depth 4 for the AI. Beyond that it will use more time
and resources.I worked on this project alone and will not be actively working on the project anymore (I will be creating other
related projects). However, I would love any suggestions/feedback/collaborative requests.## Author and Date
by Jai Joshi
23rd February, 2024