Expand description
Probe Syzygy endgame tablebases.
Syzygy tables allow optimal play with and without regard to the 50-move rule. Tables are available for positions with up to 7 pieces.
§Example
use shakmaty::{CastlingMode, Chess, fen::Fen};
use shakmaty_syzygy::{Tablebase, MaybeRounded, Wdl, Dtz, Syzygy};
let mut tables = Tablebase::new();
tables.add_directory("tables/chess")?;
let pos: Chess = "8/8/8/8/B7/N7/K2k4/8 b - - 0 1"
.parse::<Fen>()?
.into_position(CastlingMode::Standard)?;
let wdl = tables.probe_wdl_after_zeroing(&pos)?;
assert_eq!(wdl, Wdl::Loss);
let dtz = tables.probe_dtz(&pos)?;
assert!(matches!(dtz, MaybeRounded::Rounded(Dtz(-59))));
§Errors
See SyzygyError
for possible error
conditions.
§Cargo features
mmap
: Enables support for memory-mapped tablebase files viaTablebase::with_mmap_filesystem()
.variant
: Enables support for Antichess and Atomic chess.
Modules§
- filesystem
- Traits to provide a custom filesystem implementation.
Structs§
- Dtz
- DTZ50′′. Based on the distance to zeroing of the half-move clock.
- Material
- A material key.
- Table
Type - File extension and magic header bytes of Syzygy tables.
- Tablebase
- A collection of tables.
Enums§
- Ambiguous
Wdl - WDL50 with ambiguity due to DTZ rounding.
- Maybe
Rounded - A value that may be affected by DTZ rounding.
- Metric
- Metric stored in a table: WDL or DTZ.
- Probe
Error - Error when probing a table.
- Syzygy
Error - Error when probing tablebase.
- Wdl
- WDL50. 5-valued evaluation of a position in the context of the 50-move drawing rule.
Traits§
- Syzygy
- A chess variant with Syzygy support.