A Kotlin Chess Engine with Universal Chess Interface protocol support.
- Color represents chess colors.
- Piece represents chess piece type.
- Bitboard represents a board (each signed bit indicates a piece on that location).
- Square represents a board position square index.
- File represents a board file index.
- Rank represents a board rank index.
- Bitboard representation
- Magic bitboard
- Transposition table
- Static Exchange Evaluation
- Quiescence search
- Alpha-beta search
- Aspiration window
- Interactive deepening
- Null move reduction
- Razoring pruning
- Futility pruning
- Late Move Reduction
- Late move pruning
- History futility pruning
- Material value
- Piece square table
- Tapered evaluation
- Pawn evaluation
- Passed pawn evaluation
- King safety
- Safe check
- Move Ordering
- Most value victim / Lowest Value Attacker
- Killer moves
- Butterfly history
- Multi Thread
How to use
The engine runs on JRE (Java Runtime Environment) version 8 and above.
- Download the latest release.
- Uncompress the downloaded file in a empty directory.
- Run the bash file in bin directory.
You are welcome to contribute, please follow the instructions.
- 6th place on Swiss Tournament Edition VI. Group D
- To all who share ideas and/or code, without this huge resource I would not be able to make such strong engine.
- To all who tested Pirarucu, especially to all CCRL team who are constantly testing several engines (including several versions of Pirarucu).
- To Andrew Grant for developing OpenBench, a great open source tool to test and track progress of chess engines. I started using it just after v2.2.2 release and recommend it for every author.
- To all who shared their computer power with the Pirarucu OpenBench instance.
- Raoni Campos