bb_game() = binbo_position:bb_game()
castling_flag() = 0 | binbo_board:side_castling()
chess_error() = same_square | king_capture | own_piece_capture | {invalid_move, pname()} | binbo_position:make_move_error()
color() = binbo_board:color()
game_status_error() = {game_over, binbo_position:game_over_status()}
idx_move() = {sq_idx(), sq_idx(), q | r | b | n}
idx_move_error() = {invalid_promotion_type, term()} | {invalid_square_index, term()} | {invalid_move_datatype, term()}
move_error() = {parse, parse_error() | parse_san_error()} | move_overall_error()
move_info() = #move_info{from_idx = undefined | binbo_board:square_index(), to_idx = undefined | binbo_board:square_index(), from_bb = undefined | binbo_bb:sq_bb(), to_bb = undefined | binbo_bb:sq_bb(), piece = undefined | binbo_board:piece(), pcolor = undefined | binbo_board:color(), ptype = undefined | binbo_board:piece_type(), captured = binbo_board:empty_square() | binbo_board:piece(), captured_idx = undefined | binbo_board:square_index(), promo = undefined | binbo_move:promo_type(), castling = binbo_move:castling_flag(), is_check = boolean(), has_valid_moves = undefined | boolean()}
move_overall_error() = game_status_error() | piece_error() | chess_error()
parse_error() = empty_move | bad_move_value | invalid_move_string | bad_data_type | sq_error()
parse_san_error() = pre_parse_san_error() | san_from_error()
piece() = binbo_board:piece()
piece_error() = no_piece | sidetomove_mismatch
pname() = pawn | knight | bishop | rook | queen | king
pre_parse_san_error() = san_not_parsed | empty_san | bad_san_value | invalid_san_string | bad_data_type
promo_type() = 2 | 3 | 4 | 5
san_from_error() = illegal_san
sq_error() = invalid_square_notation
sq_idx() = binbo_board:square_index()
sq_move() = binary() | string()
enemy_color/1 | |
validate_idx_move/2 | |
validate_int_move/2 | |
validate_move/5 | |
validate_san_move/2 | |
validate_sq_move/2 |
enemy_color(Move_info::move_info()) -> color()
validate_idx_move(Move::idx_move(), Game::bb_game()) -> {ok, move_info(), bb_game()} | {error, idx_move_error()} | {error, move_overall_error()}
validate_int_move(Move::non_neg_integer(), Game::bb_game()) -> {ok, move_info(), bb_game()} | {error, move_overall_error()}
validate_move(Game::bb_game(), Piece::piece(), FromIdx::sq_idx(), ToIdx::sq_idx(), PromoType::promo_type()) -> {ok, move_info(), bb_game()} | {error, chess_error()}
validate_san_move(San::sq_move(), Game::bb_game()) -> {ok, move_info(), bb_game()} | {error, move_error()}
validate_sq_move(SqMove::sq_move(), Game::bb_game()) -> {ok, move_info(), bb_game()} | {error, move_error()}
Generated by EDoc