chessops
Chess and chess variant rules and operations in TypeScript.
Documentation
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.