bb() = binbo_bb:bb()
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_kings_too_close | bb_edge_rank_occupied_by_pawns | bb_invalid_enpassant | {castling, castling_error()}
castling() = 0..15
castling_error() = {white | black, both_sides | king_side | queen_side}
color() = binbo_board:color()
empty_bb() = binbo_bb:empty_bb()
empty_sq() = binbo_board:empty_square()
enpa_bb() = binbo_bb:enpa_bb()
fullmove() = binbo_fen:fullmove()
game_draw_material() = insufficient_material
game_draw_repetition() = threefold_repetition
game_draw_rule50() = rule50
game_draw_stalemate() = stalemate
game_over_status() = game_status_checkmate() | game_status_draw()
game_status() = game_status_inprogress() | game_over_status()
game_status_checkmate() = checkmate
game_status_draw() = {draw, why_draw()}
game_status_inprogress() = continue
halfmove() = binbo_fen:halfmove()
hash() = binbo_hash:hash()
hashmap() = #{hash() => pos_integer()}
make_move_error() = own_king_in_check
move_info() = binbo_move:move_info()
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() = binbo_board:piece()
piece_type() = binbo_board:piece_type()
pretty_board_opts() = [flip | unicode]
side_bb() = 1..18446744073709551615
sq_bb() = binbo_bb:sq_bb()
sq_idx() = binbo_board:square_index()
why_draw() = game_draw_stalemate() | game_draw_rule50() | game_draw_material() | game_draw_repetition() | {manual, term()}
finalize_move(MoveInfo::move_info(), Game::bb_game()) -> bb_game()
get_enpassant_bb(X1::bb_game()) -> sq_bb() | empty_bb()
get_fen(Game::bb_game()) -> binary()
get_piece(Idx::sq_idx(), Game::bb_game()) -> piece() | empty_sq()
get_piece_indexes_on_file(Piece::piece(), File::binbo_board:file(), Game::bb_game()) -> [sq_idx()]
get_piece_indexes_on_rank(Piece::piece(), Rank::binbo_board:rank(), Game::bb_game()) -> [sq_idx()]
get_side_indexes(Color, Game) -> any()
get_status(X1::bb_game()) -> game_status()
init_bb_game(ParsedFen::parsed_fen()) -> bb_game()
is_status_inprogress(Status::game_status()) -> boolean()
make_move(MoveInfo::move_info(), Game::bb_game()) -> {ok, bb_game()} | {error, make_move_error()}
piece_moves_bb(FromIdx::sq_idx(), Ptype::piece_type(), Pcolor::color(), Game::bb_game()) -> bb()
plain_sidetomove(Game::bb_game()) -> binbo_board:atom_color()
pretty_board(Game::bb_game(), Opts::pretty_board_opts()) -> {iolist(), game_status()}
validate_loaded_fen(Game::bb_game()) -> ok | {error, bb_game_error()}
Generated by EDoc