Crate chess

Source
Expand description

§Rust Chess Library

This is a chess move generation library for rust. It is designed to be fast, so that it can be used in a chess engine or UI without performance issues.

§Example

This generates all the moves on the starting chess position, and checks that the number of moves is correct.


use chess::{Board, MoveGen};

let board = Board::default();
let movegen = MoveGen::new_legal(&board);
assert_eq!(movegen.len(), 20);

Structs§

  • A good old-fashioned bitboard You do have access to the actual value, but you are probably better off using the implemented operators to work with this object.
  • A representation of a chess board. That’s why you’re here, right?
  • Represents a chess position that has not been validated for legality.
  • Store a cache of entries, each with an associated hash.
  • Represent a ChessMove in memory
  • For UI/UCI Servers, store a game object which allows you to determine draw by 3 fold repitition, draw offers, resignations, and moves.
  • An incremental move generator
  • Represent a square on the chess board

Enums§

  • Contains all actions supported within the game
  • What is the status of this game?
  • What castle rights does a particular player have?
  • Represent a color.
  • Sometimes, bad stuff happens.
  • Describe a file (column) on a chess board
  • What was the result of this game?
  • Represent a chess piece as a very simple enum
  • Describe a rank (row) on a chess board

Constants§

Functions§

  • Get a line between these two squares, not including the squares themselves.
  • This is now a no-op. It does not need to be called anymore.
  • Get a BitBoard that represents the squares on the 1 or 2 files next to this file.
  • Get the moves for a bishop on a particular square, given blockers blocking my movement.
  • Get the rays for a bishop on a particular square.
  • Get a BitBoard that represents all the squares on a particular file.
  • Get the king moves for a particular square.
  • Get the knight moves for a particular square.
  • Get the pawn capture move for a particular square, given the pawn’s color and the potential victims
  • Get all the pawn moves for a particular square, given the pawn’s color and the potential blocking pieces and victims.
  • Get the quiet pawn moves (non-captures) for a particular square, given the pawn’s color and the potential blocking pieces.
  • Get a BitBoard that represents all the squares on a particular rank.
  • Get the moves for a rook on a particular square, given blockers blocking my movement.
  • Get the rays for a rook on a particular square.
  • Get a line (extending to infinity, which in chess is 8 squares), given two squares. This line does extend past the squares.