fen property

String get fen

get current fenstr

Implementation

String get fen {
  if (_fen.isEmpty) {
    _fen = _rows.reversed.join('/').replaceAllMapped(
          RegExp(r'0+'),
          (match) => match[0]!.length.toString(),
        );
  }
  return _fen;
}
set fen (String fenStr)

Set a fen str TODO:Improve

Implementation

set fen(String fenStr) {
  if (fenStr.contains(' ')) {
    fenStr = fenStr.split(' ')[0];
  }
  _rows = fenStr
      .replaceAllMapped(
        RegExp(r'\d'),
        (match) => List<String>.filled(int.parse(match[0]!), '0').join(''),
      )
      .split('/')
      .reversed
      .map<ChessFenRow>((row) => ChessFenRow(row))
      .toList();
  _fen = fenStr;
}