The C++ (and much improved) rewrite of my previous chess engine attempt. I’m aiming for ~2000-2200 ELO in the beta release, which is when I’ll release the source.
git clone https://github.com/am5083/yayomkdir buildcmake -DCMAKE_BUILD_TYPE=Release .. && cmake --build ../yayo
yayo is far from done, so bugs are to be expected. yayo can communicate with GUIs using the UCI protocol. You can also interact with yayo in the terminal by entering UCI commands manually.
Documentation for the UCI protocol can be found here: http://wbec-ridderkerk.nl/html/UCIProtocol.html.
- Bitboards
- Alpha-Beta Pruning
- Quiescence Search
- Null Move Pruning
- Static Null Move Pruning
- Razoring
- Futility/Delta Pruning
- Butterfly Heuristic
- Late Move Pruning
- Check Extensions
- Iterative Deepening
- Killer Heuristic
- History Heuristic
- Transposition Table
- Zobrist Hashing
- (TODO) Parallel Search
- Aspiration Windows
- Late Move Reductions
- Move Ordering/Sorting
- MVV/LVA
- Static Exchange Evaluation
- Piece/Square Tables
- Mobility
- Pawn Structure
- Passed Pawns
- Doubled Pawns
- Backwards Pawns
- Isolated Pawns
- Tempo
- Tapered Evaluation
- King Safety (currently excluded)
- Texel Tuning