Struct shakmaty::variant::Chess [−][src]
pub struct Chess { /* fields omitted */ }
variant
only.Expand description
A standard Chess position.
Trait Implementations
Performs the conversion.
Set up a position. Read more
Plays a move. It is the callers responsibility to ensure the move is legal. Read more
Collects all legal moves in an existing buffer.
Generates legal castling moves.
Generates en passant moves.
Generate promotion moves.
Generates a subset of legal moves: All piece moves and drops of type
role
to the square to
, excluding castling moves. Read more
Tests if a side has insufficient winning material. Read more
Checks if the game is over due to a special variant end condition. Read more
Tests special variant winning, losing and drawing conditions.
Generates capture moves.
Tests if a move is irreversible. Read more
Attacks that a king on square
would have to deal with.
Swap turns. This is sometimes called “playing a null move”. Read more
Tests for checkmate.
Tests for stalemate.
Tests if both sides have insufficient winning material. Read more
Tests if the game is over due to checkmate, stalemate, insufficient material or variant end. Read more
Castling rights in terms of corresponding rook positions. Read more
En passant target square on the third or sixth rank. Read more
Remaining checks in chess variants like Three-Check.
Number of half-moves since the last capture or pawn move. Read more
Current move number. Read more
Squares occupied by a given piece type of the side to move. Read more
Computes the Zobrist hash of the position from scratch. Hash includes the position, except halfmove clock and fullmove number. Read more
fn prepare_incremental_zobrist_hash<V: ZobristValue>(
&self,
_previous: V,
_m: &Move
) -> Option<V>
fn prepare_incremental_zobrist_hash<V: ZobristValue>(
&self,
_previous: V,
_m: &Move
) -> Option<V>
Prepares an incremental update of the Zobrist hash before playing move
m
in self
. Returns a new intermediate Zobrist hash, or None
if incremental updating is not supported. Read more
fn finalize_incremental_zobrist_hash<V: ZobristValue>(
&self,
_intermediate: V,
_m: &Move
) -> Option<V>
fn finalize_incremental_zobrist_hash<V: ZobristValue>(
&self,
_intermediate: V,
_m: &Move
) -> Option<V>
Finalizes an incremental update of the Zobrist hash after playing move
m
in self
. Returns the new Zobrist hash, or None
if incremental
updating is not supported. Read more
Equivalent to comparing Fen::from_setup()
of both positions.
Example
Note that positions with different CastlingMode
may be equivalent.
use shakmaty::{CastlingMode, Chess, fen::Fen};
let fen = "r1bqkbnr/ppp2Qpp/2np4/4p3/2B1P3/8/PPPP1PPP/RNB1K1NR b KQkq - 0 4";
let setup: Fen = fen.parse()?;
let position: Chess = setup.position(CastlingMode::Standard)?;
let position_960: Chess = setup.position(CastlingMode::Chess960)?;
assert_eq!(position, position_960);
Auto Trait Implementations
impl RefUnwindSafe for Chess
impl UnwindSafe for Chess
Blanket Implementations
Mutably borrows from an owned value. Read more