/chessops

Chess and chess variant rules and operations in TypeScript

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

chessops

Test npm

Chess and chess variant rules and operations in TypeScript.

Documentation

View TypeDoc

Features

  • Read and write FEN
  • Vocabulary (Square, SquareSet, Color, Role, Piece, Board, Castles, Setup, Position)
  • Variant rules: Standard chess, Crazyhouse, King of the Hill, Three-check, Antichess, Atomic, Horde, Racing Kings
    • Move making
    • Legal move and drop move generation
    • Game end and outcome
    • Insufficient material
    • Setup validation
  • Supports Chess960
  • Attacks and rays using hyperbola quintessence
  • Read and write UCI move notation
  • Write SAN
  • Position hashing
  • Transformations: Mirroring and rotating

Example

import { parseFen } from 'chessops/fen';
import { Chess } from 'chessops/chess';

const setup = parseFen('r1bqkbnr/ppp2Qpp/2np4/4p3/2B1P3/8/PPPP1PPP/RNB1K1NR b KQkq - 0 4').unwrap();
const pos = Chess.fromSetup(setup).unwrap();
console.assert(pos.isCheckmate());

License

chessops is licensed under the GNU General Public License 3 or any later version at your choice. See LICENSE.txt for details.