squareNumber method

int squareNumber(
  1. String name
)

Returns the square id for a square with name.

Implementation

int squareNumber(String name) {
  name = name.toLowerCase();
  RegExp rx = RegExp(r'([A-Za-z])([0-9]+)');
  RegExpMatch? match = rx.firstMatch(name);
  assert(match != null, 'Invalid square name: $name');
  assert(match!.groupCount == 2, 'Invalid square name: $name');
  String file = match!.group(1)!;
  String rank = match.group(2)!;
  int fileNum = file.codeUnits[0] - Bishop.asciiA;
  int rankNum = v - int.parse(rank);
  int square = rankNum * h * 2 + fileNum;
  return square;
}