legalDrops property
Gets all the legal drops of this position.
Implementation
@override
SquareSet get legalDrops {
final mask = board.occupied
.complement()
.intersect(pockets != null && pockets!.hasQuality(turn)
? SquareSet.full
: pockets != null && pockets!.hasPawn(turn)
? SquareSet.backranks.complement()
: SquareSet.empty);
final ctx = _makeContext();
if (ctx.king != null && ctx.checkers.isNotEmpty) {
final checker = ctx.checkers.singleSquare;
if (checker == null) {
return SquareSet.empty;
} else {
return mask & between(checker, ctx.king!);
}
} else {
return mask;
}
}