Crate chess_move_gen [−] [src]
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 |
MoveCounter 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 |