A chess engine project for learning c++. It has a decent search speed (Average of depth 20 - Blitz 1/5) and a fast move generator.
Important
- This engine uses ideas from different open source chess engines (Stockfish, Ethreal, etc) so it is not fully original
- Credits to Maksim Korzh and BluefeverSoft for their amazing videos on chess engines.
- Uses a NNUE network from Stockfish.
- Credits to Daniel Shawul for his NNUE probe library.
- Credits to JA for his contributions to embedded NNUE nets
- Rough estimate of 2800 elo
- Magic Bitboards (wiki)
- Fully Legal and Fast Move Generator
- Keep tracks of pins and checks etc
- Generation speeds up to 400Mnps on a i7-10750H with Turbo boost
- Capture History Table
- Killer Move Heuristics
- History Table (wiki)
- Continuation History Table
- MVV-LVA (wiki)
- Staged Move Generation
- Static Exchange Evaluation (wiki)
- Iterative Deepening (wiki)
- Classic Alpha Beta Search (wiki)
- Negamax
- Quiescence Search (wiki)
- Transposition Table (wiki)
- Dynamic allocation
- Buckets
- Futility Pruning (wiki)
- Reverse Futility Pruning
- Null Move Pruning (wiki)
- Internal Iterative Deepening/Reductions (wiki)
- Prob Cut Pruning (wiki)
- Razoring (wiki)
- Late Move Reductions (wiki)
- Static Exchange Evaluation Pruning
- Singular Extension Search (wiki)
- Multicut Pruning
- Late Move Pruning
- Principal variation search (wiki)
- PeSTO tables (wiki)
