[−][src]Crate chess_move_gen
chess_move_gen
Provides structs and methods for generating chess moves efficiently
Example usage:
use chess_move_gen::*; let mut list = MoveVec::new(); let position = &Position::from_fen("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w QqKk - 0 1").unwrap(); legal_moves::<MoveVec>(position, &mut list); assert_eq!(list.len(), 20);
Re-exports
pub use bb::BB; |
Modules
bb |
Structs
Board | |
Castle | Represents a castleove |
CastlingRights | Represents the right to castle in a particular director for a particular side |
Kind | Represents a kind of piece (eg knight) |
Move | Represents a move on the chess position. Uses a compact 16 bit representation |
MoveCounter | MoveCounter implements MoveList and keeps a count of different types of moves added to it. It can count at most 256 moves since it uses |
MoveVec | MoveVec implements MoveList and collects moves in a vector.
Use |
Piece | Represents a piece for a particular side (eg black knight) |
PiecesIter | |
Position | Position encodes all positional information and non-positional game state |
Side | Represents a side to move |
Square | Represents a square on the chessboard |
State | State encodes all game state except position |
Constants
Traits
MoveList | MoveList represents a way to collect moves from move generation functions. Use this if you want to collect or record moves in a way not supported by MoveVec or MoveCounter |
Functions
legal_moves | Adds legal moves to the provided MoveList. Returns true if mover is in check |
perft |