Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 

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 (faster to initialize than magic bitboards)
  • Read and write UCI move notation
  • Read and write SAN
  • Read and write PGN
    • Game tree model
    • Transform to augment nodes with arbitrary user data
    • Streaming parser
  • Transformations: Mirroring and rotating
  • Compatibility: chessground and scalachess

File an issue to request more.

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.

About

Chess and chess variant rules and operations in TypeScript

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published