Skip to content

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

Notifications You must be signed in to change notification settings

jacobgardner/chessAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

  • 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
  • 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

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages