dartchess 0.9.1 copy "dartchess: ^0.9.1" to clipboard
dartchess: ^0.9.1 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
150
pub points
84%
popularity

Publisher

verified publisherlichess.org

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