Skip to content

Latest commit

 

History

History
49 lines (39 loc) · 1.41 KB

README.md

File metadata and controls

49 lines (39 loc) · 1.41 KB

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