Altair is a strong (hopefully in the future) UCI compatible chess engine written in C++.
Board representation:
- Move generation (with Magic Bitboards)
- Constrution of position from FEN
Search:
- Negamax
- Alpha-Beta pruning
- Move Ordering (preferably with Killer Heuristics)
- Iterative Deepening
- Transposition tables (with Zobrist Hashing)
- Quiescence search
- Aspiration windows
- Principled Variation search
- Search Extensions Reductions
- Late Move Reduction (LMR)
- Null Move Pruning
Evaluation:
- Material
- Game-Phase dependent evaluation
- Piece-Square Tables
- Pawn Structure
- Evaluation of Pieces
- Evaluation Patterns
- Mobility
- Center Control
- Connectivity
- Trapped Pieces
- King Safety
- Space
- Tempo
Other game phases:
- Opening book
- Endgame tablebases
Miscellaneous:
- UCI protocol implementation
- Time control
- Parallel search
Tests:
- Perft Test
- Iterative Deepening
- Alpha-Beta pruning
- Move Ordering
- Hash move ordering
- Separate thread for search
- Search Improvements
- Quiescence
- Evaluation
