This package should be considered deprecated. Try using Bishop instead.
chess960.dart is based on chess.dart, with some light modifications to adapt it to Chess 960 rules.
It handles legal chess move generation, maintenance of chess game state, and conversion to and from the FEN and PGN formats. It has no external dependencies.
import "package:chess960/chess960.dart";
void main() {
Chess960 chess = new Chess960();
while (!chess.game_over) {
print('position: ' + chess.fen);
print(chess.ascii);
var moves = chess.moves();
moves.shuffle();
var move = moves[0];
chess.move(move);
print('move: ' + move);
}
}
The chess.js documentation is largely relevant, but see also the docs on pub.dev
Dart 2 is required.
The test directory contains tests.dart which is a port of chess.js's unit tests. The program random.dart plays a random game of chess. ai.dart is an example of a simple 4 ply alpha beta search for black (yes a simple chess-playing program) that uses a purely material evaluation function (it is rather slow). You can run the unit tests using pub:
pub get
pub run test/tests.dart
And you can also run performance tests.
pub run test/perft.dart
And, finally you can run the simple AI:
dart test/ai.dart