dartchess 0.9.2 copy "dartchess: ^0.9.2" to clipboard
dartchess: ^0.9.2 copied to clipboard

Provides chess and chess variants rules and operations including chess move generation, read and write FEN, read and write PGN.

example/dartchess_example.dart

import 'package:dartchess/dartchess.dart';

void main() {
  // Parse fen and create a valid chess position
  final setup = Setup.parseFen(
      'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1');
  final pos = Chess.fromSetup(setup);

  // Generate legal moves
  assert(pos.legalMoves.length == 16);

  const move = NormalMove(from: Square.e2, to: Square.e4);

  assert(pos.isLegal(move));

  // Play moves
  final pos2 = pos.play(move);

  // Detect game end conditions
  assert(pos2.isGameOver == false);
  assert(pos2.isCheckmate == false);
  assert(pos2.outcome == null);
  assert(pos2.isInsufficientMaterial == false);
}
9
likes
140
points
481
downloads

Publisher

verified publisherlichess.org

Weekly Downloads

Provides chess and chess variants rules and operations including chess move generation, read and write FEN, read and write PGN.

Repository (GitHub)
View/report issues

Documentation

API reference

Funding

Consider supporting this project:

lichess.org

License

GPL-3.0 (license)

Dependencies

fast_immutable_collections, meta

More

Packages that depend on dartchess