1.0.3 • Published 5 years ago
chess-lead-lib v1.0.3
Chess Lead Lib
This is a TypeScript library to manage chess game in the chess applications. It covers main chess game rules.
Features
- Creating new or using existing game object.
- Providing available movement squares for a specific chess piece.
- Moving a chess piece with setting new game status.
- Resignation and draw by agreement.
Consumer usage example
Install the package
npm install chess-lead-libCreate instance
const chessLead = new ChessLead();Create instance using saved previously game
const chessLead = new ChessLead(mySavedBoardState);Get a square with chess piece
const square = chessLead.chessBoardState.board[4][2];Get list of acceptable squares to move
const squaresToMove = chessLead.getAcceptableMovements(square);Perform movement from one square to another
chessLead.move(square, squaresToMove[7]);Perform movement with new chess piece type in case pawn promotion
chessLead.move(square, squaresToMove[7], ChessPieceType.Queen);Check game status
if (chessLead.isGameOver()) {
// Game is over. Check GameStatus, DrawType or WinType.
}Setup for development
Clone this repository and install dependencies
git clone https://github.com/OleksiiSukhov/chess-lead-lib
npm installRun tests (one of the following command, available with watch or coverage options)
npm run test
npm run test:watch
npm run test:coverageBuild the library
npm run buildFormat the code
npm run formatVersioning
The SemVer is used for versioning. For the versions available, see the tags on this repository.
Contributing
Please take a look at the contribution guidelines bellow if you're interested in helping!
- Please open or refer to a related issue in the repo.
- Create new branch.
- Please add unit tests for new feature or bug.
- Please run lint and tests locally before pushing the changes.
- Create new pull request for review.
Pending Features
- Time control
License
This project is licensed under the MIT License - see the LICENSE.md file for details