https://github.com/wazzabeee/chess_ai
Java chess AI using Principal Variation Splitting, Piece Square Tables, Opening Book and Tapered Evaluation.
https://github.com/wazzabeee/chess_ai
chess chess-ai minimax-alpha-beta-pruning opening-book piece-square-tables principal-variation-splitting pvs quiescence-search tapered-evaluation transposition-table
Last synced: 3 months ago
JSON representation
Java chess AI using Principal Variation Splitting, Piece Square Tables, Opening Book and Tapered Evaluation.
- Host: GitHub
- URL: https://github.com/wazzabeee/chess_ai
- Owner: Wazzabeee
- Created: 2022-10-25T12:47:25.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-12-15T23:00:22.000Z (over 2 years ago)
- Last Synced: 2025-01-13T06:41:49.838Z (5 months ago)
- Topics: chess, chess-ai, minimax-alpha-beta-pruning, opening-book, piece-square-tables, principal-variation-splitting, pvs, quiescence-search, tapered-evaluation, transposition-table
- Language: Java
- Homepage:
- Size: 10.4 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![]()
# Chess Engine : PVS
## AboutThis chess AI was developed by [Justin Aubin](https://github.com/Justin-Aubin) and myself for an end-of-term project part of 8INF878 : AI course at UQAC. You can find the written report about this project (in French) in the repo.
It uses the [UCI](http://wbec-ridderkerk.nl/html/UCIProtocol.html) protocol. We implemented :
- principal variation splitting (distributed algorithm)
- depth limited minimax with fail-soft alpha-beta pruning
- material evaluation
- tapered evaluation
- piece square tables
- transposition table
- quiescense search
- move ordering
- opening book (20 000 games)It can deliver a move in less than a second at depth 5 on most computers. If your computer has lot of cores, you may want to try at depth 7 and modify the 1 second time limit in Timer.java.
Thanks to it we won the small tournament organized between the AI of the students of the class.
This has been possible thanks to [Chesslib](https://github.com/bhlangonijr/chesslib) for the chess rules and [Carballo](https://github.com/albertoruibal/carballo) for the reading of Polyglot files.
## How to use
The repo is a Maven project. Use the IDE of your choice to play with it.
You can play against the AI using the console and [UCI](http://wbec-ridderkerk.nl/html/UCIProtocol.html) commands or build a .JAR file and use it on a Graphical User Interface supporting UCI protocol : [Arena](http://www.playwitharena.de/).## Stats on Chess.com
![]()
Games history can be found [here](https://www.chess.com/member/8inf878).