Initial release of the Topas chess engine.
The following features are implemented in this release:
- Universal Chess Interface (UCI) support, described in the README
- Chess board representation and fast attack/movement patterns using bitboards
- Negamax with alpha-beta pruning, using a principal variation search, to efficiently search to a configurable depth
- Iterative deepening with aspiration windows to allow for more efficient move ordering and time management
- Transposition tables (with Zobrist hashing) for fast lookup and enhanced move ordering
- Move ordering based on principal variation, cut nodes, capture moves sorted via MVV-LVA (Most Valuable Victim, Least Valuable Attacker), and killer moves
- Quiescence search with delta pruning and static exchange evaluation (SEE) to mitigate the horizon effect
- Tapered static evaluation based on piece values, piece-square tables (PST), and game state
- Late move reductions to reduce the search space