Blunders Engine
Blunders Engine is the core library of the Blunders Chess Engine application.
Features
- Bitboard and mailbox representations for Chess Positions / Board state.
- Legal move generator.
- UCI communication facilities.
- A two-layer shared Transposition Table, that uses either a mutex lock or atomics for synchronization.
- Minimax with Alpha-Beta pruning based search, iterative deepening, quiescence search.
- Unified Error type.
- Incremental Zobrist hashing.
- Hand-crafted evaluation.
- Simple time management strategy.
Basic Usage
Blunders Engine can either be used by composing the raw components manually, or using the Engine
API.
Search the start position to a depth of 4-ply using a Transposition Table with 10 megabytes of capacity:
use ;
let tt = with_mb;
let position = start_position;
let ply = 4;
let search_results = search;
println!;
assert_eq!;
Do the same as above with the engine API:
use ;
let ply = 4;
let mut engine = new
.position
.transpositions_mb
.build;
let search_results = engine.search_sync;
println!;
assert_eq!;