v1.7.1
·
86 commits
to master
since this release
Moving the chessmodels.perft() function from the tests to the main code; adding the go-chess-perft tool and the example for the chessmodels.MoveGenerator.MovesForColor() method; bug fixing.
Change Log
- new features:
- transform the
chessmodels.Board.CheckMove()method to an independent function; - the
chessmodels.Perft()function:- move the
chessmodels.perft()function from the tests to the main code; - pass a handler to all levels in the
chessmodels.Perft()function; - pass a move generator to the
chessmodels.Perft()function via an interface;
- move the
- add the
go-chess-perfttool;
- transform the
- bug fixing:
- fix rune conversion from an integer to a string in the
uci.EncodePosition()function; - fix incorrect calculation of the last file in the
uci.EncodePieceStorage()function;
- fix rune conversion from an integer to a string in the
- refactoring:
- simplify the utility functions in the
piecespackage; - merge the
chessmodels.pieceGrouptype with thechessmodels.Boardstructure;
- simplify the utility functions in the
- unit testing:
- complete the tests:
- of the
pieces.NewPiece()function; - of the
uci.DecodePiece()function; - of the
uci.EncodePiece()function;
- of the
- add the long-playing tests to the Travis CI configuration;
- complete the tests:
- examples:
- remove the examples:
- remove the examples with a mock piece;
- remove the redundant examples;
- add the example for the
chessmodels.MoveGenerator.MovesForColor()method.
- remove the examples:
Features
- representing the board as an associative array of pieces with their positions as keys;
- immutable applicating moves to the board via copying the latter;
- checkings of moves:
- universal;
- individual for all types of pieces;
- generating moves via filtering from all possible ones;
- perft function;
- using an abstraction of a piece;
- Forsyth–Edwards Notation:
- parsing:
- of a position;
- of a move;
- of a piece kind;
- of a piece color;
- of a board;
- serialization:
- of a position;
- of a move;
- of a piece kind;
- of a piece color;
- of a board;
- parsing:
- utilities:
- utility for counting all possible moves (based on the perft function).