startingPosition static method

Position startingPosition(
  1. PgnHeaders headers, {
  2. bool? ignoreImpossibleCheck,
})

Create a Position for a Variant from the headers.

Headers can include an optional 'Variant' and 'Fen' key.

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

Implementation

static Position startingPosition(PgnHeaders headers,
    {bool? ignoreImpossibleCheck}) {
  final rule = Rule.fromPgn(headers['Variant']);
  if (rule == null) throw PositionSetupException.variant;
  if (!headers.containsKey('FEN')) {
    return Position.initialPosition(rule);
  }
  final fen = headers['FEN']!;
  try {
    return Position.setupPosition(rule, Setup.parseFen(fen),
        ignoreImpossibleCheck: ignoreImpossibleCheck);
  } catch (err) {
    rethrow;
  }
}