Skip to content
Chess and chess variant rules and operations in TypeScript
TypeScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows
src reuse attacks.attacks for pseudo dests Nov 25, 2019
test
.eslintrc.json
.gitignore do not ignore accidantely generated files Nov 19, 2019
CHANGELOG.md fix typo and clarify changelog Nov 23, 2019
LICENSE.txt add gpl 3 Aug 17, 2019
README.md prepare 0.1.0 Nov 22, 2019
package.json
tsconfig.json only publish compiled files in the future Nov 17, 2019

README.md

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.

You can’t perform that action at this time.