To benchmark, run:
cargo bench
A new attempt at a Chess AI in Rust. This attempt will try to achieve the following goals:
- Using proper bitboards for move generation
- Pawn
- Single Move
- Double Move
- Normal Captures
- En Passant
- Rook
- Horizontal Moves
- Vertical Moves
- Knight
- Bishop
- Queen
- King
- Castling
- Pawn
- Web frontend for seeing chess boards
- Using some sort of Arena for the tree
- Minimax w/ alpha-beta pruning
- Iterative depth first search
- Adaptive search depth over the course of the game and how much time is remaining
Stretch Goals:
- Hooking up to Chess.com API to play against
- Setting up tournament server for other AI to play against/rank.
- Using lookups for boards to choose best move without searching (especially at the start)
- Uisng an evolutionary algorithm to tune parameters
- Piece Values
- How deep to search at any given time
Possible Optimizations:
-
Using premade boards for a lot of masks.
NOTE: This actually may end up slower because the frequent lookups may thrash the cache
- 64 knight move pattern boards
- 64 bishop move pattern boards
- 64 rook move pattern boards
- 65 king move pattern boards
-
Use opening move database for initial moves