chessops
    Preparing search index...

    chessops

    chessops

    Test npm

    Chess and chess variant rules and operations in TypeScript.

    View TypeDoc

    • Read and write FEN
    • Vocabulary
      • Square
      • SquareSet (implemented as bitboards)
      • Color
      • Role (piece type)
      • Piece (Role and Color)
      • Board (map of piece positions)
      • Castles
      • Setup (a not necessarily legal position)
      • Position (base class for legal positions, Chess is a concrete implementation)
    • 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 (faster to initialize than Magic Bitboards)
    • Read and write UCI move notation
    • Read and write SAN
    • Read and write PGN
      • Parser supports asynchronous streaming
      • Game tree model
      • Transform game tree to augment nodes with arbitrary user data
      • Parse comments with evaluations, clocks and shapes
    • Transformations: Mirroring and rotating
    • Compatibility: chessground and scalachess
    import { Chess } from 'chessops/chess';
    import { parseFen } from 'chessops/fen';

    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());

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