Current section

Files

Jump to
binbo CHANGELOG.md
Raw

CHANGELOG.md

# Changelog
All notable changes to this project will be documented in this file.
## [4.0.2]
- Fixed: the fifty-move rule was not applied correctly.
## [4.0.1] - 2022-03-18
- Fixed: castling was not legal when more than two rooks of the same side on the board.
## [4.0.0] - 2022-02-18
- Support for TCP connections to remote UCI chess engines.
- Environment variable `UCI_ENGINE_PATH` renamed to `BINBO_UCI_ENGINE_PATH` used in UCI tests.
## [3.0.0] - 2021-01-30
- In case of **checkmate** the functions listed bellow now return `{ok, {checkmate, white_wins}}` or `{ok, {checkmate, black_wins}}`:
- `binbo:game_status/1`;
- `binbo:new_game/2`;
- `binbo:move/2`;
- `binbo:san_move/2`;
- `binbo:index_move/3,4`;
- `binbo:set_game_state/2`;
- `binbo:load_pgn/2`;
- `binbo:load_pgn_file/2`;
- `binbo:new_uci_game/2`;
- `binbo:uci_play/2,3`;
- `binbo:uci_set_position/2`.
## [2.1.0] - 2020-12-14
- `movetime` option for functions `binbo:uci_bestmove/1,2` and `binbo:uci_play/2,3` defaults to 1000 ms.
- New functions:
- `binbo:get_pieces_list/2`;
- `binbo:index_move/3,4`;
- `binbo:set_game_winner/2,3`.
## [2.0.0] - 2020-08-12
- Added options for the game process at start (`binbo:new_server(Options)`). `Options` is a map now!
- New function `binbo:set_server_options/2`.
- New function `binbo:set_game_state/2`.
## [1.2.3] - 2020-01-22
- Performance improvements.
## [1.2.2] - 2020-01-10
- Dependency `uef-lib` updated to 2.5.3.
## [1.2.1] - 2019-12-11
- Fixed: PGN could not be loaded if it contained Tab characters.
## [1.2.0] - 2019-12-10
- UCI protocol support added.
- UCI protocol related functions:
- `binbo:new_uci_game/2`;
- `binbo:uci_command_call/2`;
- `binbo:uci_command_cast/2`;
- `binbo:uci_mode/1`;
- `binbo:uci_bestmove/1`;
- `binbo:set_uci_handler/2`;
- `binbo:uci_play/2,3`;
- `binbo:uci_set_position/2`.
- `binbo:uci_sync_position/1`.
- New function `binbo:side_to_move/1`.
## [1.1.2] - 2019-09-26
- Performance optimization in game state update.
- Some binary optimizations for FEN/SAN parsing.
- Dependency `uef-lib` updated to 2.5.1.
- More perft tests added.
## [1.1.1] - 2019-08-16
- Optimized move generation using bitboards instead of lists of square indices.
## [1.1.0] - 2019-08-14
- Improved performance of all legal moves generation.
- All perft tests are passed much faster.
- New function `binbo_board:int_move/2`.
- New function `binbo_board:int_move/3`.
- New function `binbo_board:int_move_from/1`.
- New function `binbo_board:int_move_to/1`.
- New function `binbo_move:validate_int_move/2`.
- Count all legal moves with `binbo:all_legal_moves(Pid, count)`.
## [1.0.2] - 2019-08-08
- Fixed: Castling was allowed with enemy piece after capturing a friendly rook. The bug was found during testing Position 5 at depth 3 from [Perft Results](https://www.chessprogramming.org/Perft_Results).
- Fixed: Wrong castling allowed by FEN was not properly validated.
- Passes all perft tests now.
## [1.0.1] - 2019-08-06
- Fixed: `binbo:all_legal_moves/1,2` did not include possible pawn promotions. It now returns a list of legal moves where each element is a tuple `{From, To}` or `{From, To, Promo}`.
## [1.0.0] - 2019-08-05
- API of `binbo_movegen` module has been changed regarding function `all_valid_moves/*`. It now returns a list of legal moves where each element is a tuple `{From, To}`.
- New function `binbo:all_legal_moves/1`.
- New function `binbo:all_legal_moves/2`.
## [0.3.0] - 2019-08-01
- Support for loading PGN from file.
- New function `binbo:load_pgn_file/2`.
## [0.2.0] - 2019-07-30
- Support for PGN loading.
- New function `binbo:load_pgn/2`.
- New function `binbo:san_move/2`.
## [0.1.0] - 2019-07-22
- Initial release.