validate method

  1. @override
void validate({
  1. bool? ignoreImpossibleCheck,
})
override

Checks the legality of this position.

Throws a PositionSetupException if it does not meet basic validity requirements.

Implementation

@override
void validate({bool? ignoreImpossibleCheck}) {
  super.validate(ignoreImpossibleCheck: ignoreImpossibleCheck);
  if (pockets == null) {
    throw PositionSetupException.variant;
  } else {
    if (pockets!.count(Role.king) > 0) {
      throw PositionSetupException.kings;
    }
    if (pockets!.size + board.occupied.size > 64) {
      throw PositionSetupException.variant;
    }
  }
}