https://github.com/jacobgardner/chessai
Part of my exploration of Rust and how it is good. This is more about exploring patterns and architecture in Rust and less about an efficient Chess AI
https://github.com/jacobgardner/chessai
chess chess-ai
Last synced: about 2 months ago
JSON representation
Part of my exploration of Rust and how it is good. This is more about exploring patterns and architecture in Rust and less about an efficient Chess AI
- Host: GitHub
- URL: https://github.com/jacobgardner/chessai
- Owner: jacobgardner
- Created: 2018-01-16T05:37:15.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-04-12T06:12:54.000Z (about 4 years ago)
- Last Synced: 2025-02-13T18:27:49.581Z (3 months ago)
- Topics: chess, chess-ai
- Language: Rust
- Homepage:
- Size: 2.16 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Chess AI
========To benchmark, run:
cargo bench
A new attempt at a Chess AI in Rust. This attempt will try to achieve the following goals:
- [x] Using proper bitboards for move generation
- [x] Pawn
- [x] Single Move
- [x] Double Move
- [x] Normal Captures
- [x] En Passant
- [x] Rook
- [x] Horizontal Moves
- [x] Vertical Moves
- [x] Knight
- [x] Bishop
- [x] Queen
- [x] King
- [x] Castling
- [ ] 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 remainingStretch 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 timePossible 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