A UCI chess engine written from scratch in C++. Hosted on GCP and rated ~2050 on Lichess.
Play against Archduchess on Lichess!
- uci, isready, ucinewgame, position, go, stop, and quit commands
- go ponder, go searchmoves and go mate are not implemented
- Board representation using bitboards
- Bitboard shift for pawns
- Bitboard masks for knights and kings
- Magic bitboards for sliding pieces
- Generate pseudo-legal moves, then remove illegal moves
- Material count
- Piece-Square Tables
- Negamax
- Alpha-Beta Pruning
- Iterative Deepening
- Transposition Table
- Quiescence Search
- Delta Pruning
- Null Move Pruning
- Check Extensions
- Best move from the previous iteration
- Hash move from the transposition table
- MVV-LVA
- 2 Killer Moves
- History Heuristic
- Indexed by side to move, start square and end square
- Better evaluation (pawn structure, king safety, endgame piece-square tables, etc...)
- Static Exchange Evaluation
- Late Move Reduction