chess.ts is a chess library and rewrite of chess.js in Typescript that is used for chess move generation/validation, piece placement/movement, and check/checkmate/stalemate detection - basically everything but the AI.
chess.ts has been extensively tested in node.js and most modern browsers.
To install the stable version:
# NPM
npm install chess.ts
# Yarn
yarn add chess.ts
The code below plays a random game of chess:
import { Chess } from 'chess.ts'
const chess = new Chess()
while (!chess.game_over()) {
const moves = chess.moves()
const move = moves[Math.floor(Math.random() * moves.length)]
chess.move(move)
}
console.log(chess.pgn())
By design, chess.ts is headless and does not include user interface. Many developers have had success integrating chess.ts with the chessboard.js library. See chessboard.js - Random vs Random for an example.
- The en passant square and castling flags aren't adjusted when using the put/remove functions (workaround: use .load() instead)