Crate bughouse[][src]

Structs

BitBoard

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.

Board

A representation of a chess board. That’s why you’re here, right?

BoardBuilder

Represents a chess position that has not been validated for legality.

BughouseBoard

A representation of one Bughouse board.

BughouseGame

A representation of one Bughouse board.

BughouseMove

Represent a ChessMove in memory

CacheTable

Store a cache of entries, each with an associated hash.

ChessMove

Represent a ChessMove in memory

Game

For UI/UCI Servers, store a game object which allows you to determine draw by 3 fold repitition, draw offers, resignations, and moves.

Holdings

A representation of one Bughouse board.

MoveGen

An incremental move generator

Promotions

A representation of tracking squares that have a piece promoted from a pawn.

PromotionsParseError
Square

Represent a square on the chess board

Enums

Action

Contains all actions supported within the game

BoardID
BoardStatus

What is the status of this game?

CastleRights

What castle rights does a particular player have?

Color

Represent a color.

Error

Sometimes, bad stuff happens.

File

Describe a file (column) on a chess board

GameResult

What was the result of this game?

Piece

Represent a chess piece as a very simple enum

Rank

Describe a rank (row) on a chess board

Constants

ALL_CASTLE_RIGHTS

Enumerate all castle rights.

ALL_COLORS

List all colors

ALL_FILES

Enumerate all files

ALL_PIECES

An array representing each piece type, in order of ascending value.

ALL_RANKS

Enumerate all ranks

ALL_SQUARES

A list of every square on the chessboard.

EDGES

What are all the edge squares on the BitBoard?

EMPTY

An empty bitboard. It is sometimes useful to use !EMPTY to get the universe of squares.

NUM_CASTLE_RIGHTS

How many different types of CastleRights are there?

NUM_COLORS

How many colors are there?

NUM_FILES

How many files are there?

NUM_HELD_PIECE_TYPES
NUM_PIECES

How many piece types are there?

NUM_PROMOTION_PIECES

How many ways can I promote?

NUM_RANKS

How many ranks are there?

NUM_SQUARES

How many squares are there?

PROMOTION_PIECES

What pieces can I promote to?

Functions

between

Get a line between these two squares, not including the squares themselves.

construct

This is now a no-op. It does not need to be called anymore.

get_adjacent_files

Get a BitBoard that represents the squares on the 1 or 2 files next to this file.

get_bishop_moves

Get the moves for a bishop on a particular square, given blockers blocking my movement.

get_bishop_rays

Get the rays for a bishop on a particular square.

get_file

Get a BitBoard that represents all the squares on a particular file.

get_king_moves

Get the king moves for a particular square.

get_knight_moves

Get the knight moves for a particular square.

get_pawn_attacks

Get the pawn capture move for a particular square, given the pawn’s color and the potential victims

get_pawn_moves

Get all the pawn moves for a particular square, given the pawn’s color and the potential blocking pieces and victims.

get_pawn_quiets

Get the quiet pawn moves (non-captures) for a particular square, given the pawn’s color and the potential blocking pieces.

get_rank

Get a BitBoard that represents all the squares on a particular rank.

get_rook_moves

Get the moves for a rook on a particular square, given blockers blocking my movement.

get_rook_rays

Get the rays for a rook on a particular square.

line

Get a line (extending to infinity, which in chess is 8 squares), given two squares. This line does extend past the squares.