Chess engine, in Rust.
Go to file
2024-12-21 21:51:39 -05:00
contrib fix: bitboard not reflecting captures 2024-10-22 16:31:30 -04:00
src refactor: remove many transposition entry fields 2024-12-21 21:23:08 -05:00
tests chore: silence warnings 2024-11-03 11:32:13 -05:00
.gitignore stub: movegen 2024-09-29 10:43:45 -04:00
Cargo.lock initial commit 2024-09-22 21:08:40 -04:00
Cargo.toml build: update msrv to 1.83 and remove beta compiler 2024-12-06 19:58:44 -05:00
LICENSE chore: license 2024-10-25 22:30:03 -04:00
README.md docs: branch info 2024-12-21 21:51:39 -05:00

Branch: small transposition table entries

Seemingly, having smaller transposition table entries could increase performance. But actually, looking at the length of the PV is misleading because transposition table hits may cut the PV short.

chess-inator

A chess engine.

Features:

  • Negamax search
  • Alpha-beta pruning
  • Piece-square tables
    • Tapered midgame-endgame evaluation
  • UCI compatibility
  • Iterative deepening
  • Transposition table (Zobrist hashing)
    • Currently only stores best move.

instructions

To run the engine (in UCI mode):

cargo run --release

Quick unit tests:

cargo test

Longer duration, more rigorous tests:

cargo test --release

Flamegraph (on perft):

export CARGO_PROFILE_RELEASE_DEBUG true
cargo flamegraph --test perft