Module binbo_position

Data Types

bb()

bb() = binbo_bb:bb()

bb_game()

bb_game() = #{bbwp := bb(), bbwn := bb(), bbwb := bb(), bbwr := bb(), bbwq := bb(), bbwk := bb(), bbbp := bb(), bbbn := bb(), bbbb := bb(), bbbr := bb(), bbbq := bb(), bbbk := bb(), bbw := bb(), bbb := bb(), bball := bb(), sidetomove := undefined | color(), castling := castling(), bbenpa := enpa_bb(), halfmove := halfmove(), fullmove := fullmove(), lastmove := undefined | {sq_idx(), sq_idx()}, lastmovepc := piece() | empty_sq(), phash := 0 | hash(), phashmap := hashmap(), status := game_status(), sq_idx() := piece() | 0}

bb_game_error()

bb_game_error() = bb_kings_too_close | bb_edge_rank_occupied_by_pawns | bb_invalid_enpassant | {castling, castling_error()}

castling()

castling() = 0..15

castling_error()

castling_error() = {white | black, both_sides | king_side | queen_side}

color()

color() = binbo_board:color()

empty_bb()

empty_bb() = binbo_bb:empty_bb()

empty_sq()

empty_sq() = binbo_board:empty_square()

enpa_bb()

enpa_bb() = binbo_bb:enpa_bb()

fullmove()

fullmove() = binbo_fen:fullmove()

game_draw_material()

game_draw_material() = insufficient_material

game_draw_repetition()

game_draw_repetition() = threefold_repetition

game_draw_rule50()

game_draw_rule50() = rule50

game_draw_stalemate()

game_draw_stalemate() = stalemate

game_over_status()

game_over_status() = game_status_checkmate() | game_status_draw()

game_status()

game_status() = game_status_inprogress() | game_over_status()

game_status_checkmate()

game_status_checkmate() = checkmate

game_status_draw()

game_status_draw() = {draw, why_draw()}

game_status_inprogress()

game_status_inprogress() = continue

halfmove()

halfmove() = binbo_fen:halfmove()

hash()

hash() = binbo_hash:hash()

hashmap()

hashmap() = #{hash() => pos_integer()}

make_move_error()

make_move_error() = own_king_in_check

move_info()

move_info() = binbo_move:move_info()

parsed_fen()

parsed_fen() = #parsed_fen{position = binbo_fen:position(), sidetomove = undefined | 119 | 98, castling = binbo_position:castling(), enpassant = none | binbo_board:square_index(), halfmove = non_neg_integer(), fullmove = pos_integer()}

piece()

piece() = binbo_board:piece()

piece_type()

piece_type() = binbo_board:piece_type()

pretty_board_opts()

pretty_board_opts() = [flip | unicode]

side_bb()

side_bb() = 1..18446744073709551615

sq_bb()

sq_bb() = binbo_bb:sq_bb()

sq_idx()

sq_idx() = binbo_board:square_index()

why_draw()

why_draw() = game_draw_stalemate() | game_draw_rule50() | game_draw_material() | game_draw_repetition() | {manual, term()}

Function Index

bishop_moves_bb/2
finalize_move/2
get_enpassant_bb/1
get_fen/1
get_piece/2
get_piece_indexes/2
get_piece_indexes_on_file/3
get_piece_indexes_on_rank/3
get_side_indexes/2
get_sidetomove/1
get_status/1
init_bb_game/1
is_in_check/2
is_status_inprogress/1
king_moves_bb/3
knight_moves_bb/3
make_move/2
manual_draw/2
own_side_bb/2
pawn_moves_bb/3
pawn_moves_bb/4
piece_moves_bb/4
plain_sidetomove/1
pretty_board/2
queen_moves_bb/2
rook_moves_bb/2
validate_loaded_fen/1
with_status/3

Function Details

bishop_moves_bb/2

bishop_moves_bb(FromIdx::sq_idx(), Game::bb_game()) -> bb()

finalize_move/2

finalize_move(MoveInfo::move_info(), Game::bb_game()) -> bb_game()

get_enpassant_bb/1

get_enpassant_bb(X1::bb_game()) -> sq_bb() | empty_bb()

get_fen/1

get_fen(Game::bb_game()) -> binary()

get_piece/2

get_piece(Idx::sq_idx(), Game::bb_game()) -> piece() | empty_sq()

get_piece_indexes/2

get_piece_indexes(Piece::piece(), Game::bb_game()) -> [sq_idx()]

get_piece_indexes_on_file/3

get_piece_indexes_on_file(Piece::piece(), File::binbo_board:file(), Game::bb_game()) -> [sq_idx()]

get_piece_indexes_on_rank/3

get_piece_indexes_on_rank(Piece::piece(), Rank::binbo_board:rank(), Game::bb_game()) -> [sq_idx()]

get_side_indexes/2

get_side_indexes(Color, Game) -> any()

get_sidetomove/1

get_sidetomove(X1::bb_game()) -> color()

get_status/1

get_status(X1::bb_game()) -> game_status()

init_bb_game/1

init_bb_game(ParsedFen::parsed_fen()) -> bb_game()

is_in_check/2

is_in_check(Color::color(), Game::bb_game()) -> boolean()

is_status_inprogress/1

is_status_inprogress(Status::game_status()) -> boolean()

king_moves_bb/3

king_moves_bb(FromIdx::sq_idx(), Color::color(), Game::bb_game()) -> bb()

knight_moves_bb/3

knight_moves_bb(FromIdx::sq_idx(), Color::color(), Game::bb_game()) -> bb()

make_move/2

make_move(MoveInfo::move_info(), Game::bb_game()) -> {ok, bb_game()} | {error, make_move_error()}

manual_draw/2

manual_draw(Reason::bb_game(), Game::term()) -> bb_game()

own_side_bb/2

own_side_bb(Color::color(), Game::bb_game()) -> side_bb()

pawn_moves_bb/3

pawn_moves_bb(FromIdx::sq_idx(), Color::color(), Game::bb_game()) -> bb()

pawn_moves_bb/4

pawn_moves_bb(FromIdx::sq_idx(), Color::color(), Game::bb_game(), PosEnpaBB::enpa_bb()) -> bb()

piece_moves_bb/4

piece_moves_bb(FromIdx::sq_idx(), Ptype::piece_type(), Pcolor::color(), Game::bb_game()) -> bb()

plain_sidetomove/1

plain_sidetomove(Game::bb_game()) -> binbo_board:atom_color()

pretty_board/2

pretty_board(Game::bb_game(), Opts::pretty_board_opts()) -> {iolist(), game_status()}

queen_moves_bb/2

queen_moves_bb(FromIdx::sq_idx(), Game::bb_game()) -> bb()

rook_moves_bb/2

rook_moves_bb(FromIdx::sq_idx(), Game::bb_game()) -> bb()

validate_loaded_fen/1

validate_loaded_fen(Game::bb_game()) -> ok | {error, bb_game_error()}

with_status/3

with_status(Game::bb_game(), HasValidMoves::boolean(), IsCheck::boolean()) -> bb_game()


Generated by EDoc