Technical Features
More information about the algorithms used in this project can be found on the Chess programming wiki
- Engine compatible with UCI and CECP protocols
- Bitboards and magic bitboards
- alpha-beta search (negamax)
- Principal Variation Search
- Quiescence search
- Iterative deepening
- Aspiration window
- Opening book (Polyglot format)
- Internal iterative deepening
- Adaptive null moves pruning
- Late move reduction
- Late move pruning
- Futility pruning
- Razoring
- Mate distance pruning
- Multiple threads support
- Young Brother Wait Concept (YBWC)
- Support 64 threads maximum
- "Lazy SMP" (Shared hash table)
- Support 256 threads maximum in Linux, and 64 in Windows
- Young Brother Wait Concept (YBWC)
- Transposition table + Zobrist hash key
- Use Mersenne Twister for random numbers
- 4 buckets
- Replacement scheme : use age and depth
- Pawn Hash table (2 Mb)
- Search extensions
- Check extension
- Pawn on 7th
- Evaluation function
- Lazy evaluation
- Game phase (incremental)
- Material (incremental)
- Mobility tables
- Piece square tables
- Doubled pawns
- Passed pawns
- Isolated pawns
- Backward pawns
- Blocked pawns
- Rooks on open or semi-open files
- Rooks on 7th rank
- King safety
- Knight outposts
- Insufficient Material
- Endgames
- Allow to change some parameters with personalities
- Texel's tuning method
- Gradient descent algorithm
- Tablebases
- Syzygy tablebases
- Move ordering
- Hash table
- SEE good captures and promotions
- Killer moves
- Counter moves
- History heuristic
- SEE bad captures
- Rules
- Standard
- FRC