struct

Chess::Position

Inherits Struct < Value < Object

Constants

BLACK_KING_SIDE_CASTLE_FLAG = 1_u8 << 2
BLACK_QUEEN_SIDE_CASTLE_FLAG = 1_u8 << 3
EP_SQUARE_DIRECTION = [8, -8]
INITIAL = new(INITIAL_POSITION_IN_FEN)
INITIAL_POSITION_IN_FEN = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"
KING_CASTLE_FLAGS = [BLACK_QUEEN_SIDE_CASTLE_FLAG | BLACK_KING_SIDE_CASTLE_FLAG, WHITE_QUEEN_SIDE_CASTLE_FLAG | WHITE_KING_SIDE_CASTLE_FLAG]
PIECE_CHARS = "pnbrqk."
ROOK_CASTLE_FLAGS = Array(UInt8).new(64) do |idx| case idx when Square::A1.value WHITE_QUEEN_SIDE_CASTLE_FLAG when Square::H1.value WHITE_KING_SIDE_CASTLE_FLAG when Square::A8.value BLACK_QUEEN_SIDE_CASTLE_FLAG when Square::H8.value BLACK_KING_SIDE_CASTLE_FLAG else 0_u8 end end
WHITE_KING_SIDE_CASTLE_FLAG = 1_u8
WHITE_QUEEN_SIDE_CASTLE_FLAG = 1_u8 << 1

Constructors

new(fen)
Source

Instance methods

bishops
Source
blacks
Source
colours
Source
colours=(colours : Array(UInt64))
Source
ep_square
Source
ep_square=(ep_square : Chess::Square)
Source
fifty_move
Source
fifty_move=(fifty_move : Int32)
Source
flags
Source
flags=(flags : UInt8)
Source
generate_moves
Source
generate_pseudolegal_moves
Source
generate_wrapped_moves
Source
insufficient_material?
Source
is_in_check?
Source
is_square_attacked?(square, colour)
Source
key=(key : UInt64)
Source
kings
Source
knights
Source
last_move
Source
last_move=(last_move : Int32)
Source
make_move(move : MoveWrapper)
Source
make_move(move : Int32) : Position | Nil
Source
move_count
Source
move_count=(move_count : Int32)
Source
pawn_key
Source
pawn_key=(pawn_key : UInt64)
Source
pawns
Source
pieces
Source
pieces=(pieces : Array(UInt64))
Source
pretty
Source
queens
Source
rooks
Source
side_to_move
Source
side_to_move=(side_to_move : Chess::Colour)
Source
to_fen
Source
type_on_square(idx)
Source
whites
Source