Skip to content

About

A UCI chess engine written from scratch in Rust, as a way of learning the language.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

chess-engine

A UCI chess engine written in Rust, from scratch, as a way of learning the language.

Written by hand — see CLAUDE.md for the rules I work under. Design decisions and the reasoning behind them are logged in docs/decisions.md.

Status

Milestone 1 of 7 — board representation. Does not yet play chess.

Build and run

cargo run
cargo test

Correctness: perft

Perft counts the leaf nodes of the move tree to a given depth. Because the correct counts are published, it's an exact test of move generation — either the number matches or there is a bug. It is the backbone of this project's test suite.

Reference values come from the Chess Programming Wiki perft results page.

Position Depth Nodes Time Nodes/sec
pending milestone 3

Strength

Not yet measurable — needs search (milestone 4) and UCI (milestone 6).

Roadmap

  1. Board representation — pieces, squares, state, FEN parse/emit
  2. Move generation — pseudo-legal, then legality filtering
  3. Perft — correctness proof for the above
  4. Search — negamax with alpha-beta
  5. Evaluation — material, then piece-square tables
  6. UCI — plays in Cute Chess / Arena
  7. Strength — iterative deepening, transposition table, move ordering, quiescence

Progress is tracked in issues and on the project board.

About

A UCI chess engine written from scratch in Rust, as a way of learning the language.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages