chess engine written in rust
- add visual feedback for perft tests
- zobrist hashing
- speed up perft (transposition table)
- set up basic cli
- add
help
command - add debugging commands (load FEN, perft on specific FEN, print board)
- add command to make moves
- consistent error handling (and panic where it's a bug in program implementation)
- implement UCI protocol (at least the important parts)
- basic search
- basic material evaluation
- time management
- iterative deepening
- integrate transposition table with search
- alpha-beta pruning
- move ordering
- piece-square tables
- quiescence search
- piece mobility
- opening book
- principal variation search
- make transposition table work with alpha-beta
- research and experiment with fail-soft alpha-beta
- endgame piece-square tables
- try out tapered evaluation
- tuning
- check extension
- draw detection (repetitions and 50-move rule)
- null move pruning
- killer move heuristic
- history heuristic
- aspiration window
- weighted mobility based on piece type and game phase