movePoints method

List<String> movePoints(
  1. ChessPos activePos, [
  2. ChessPos? target
])

获取当前子力能移动的位置 target 为目标位置,如果传入了目标位置,则会优化检测

Implementation

List<String> movePoints(ChessPos activePos, [ChessPos? target]) {
  String code = fen[activePos.y][activePos.x];
  if (code.isEmpty || code == '0') return [];
  int team = code.codeUnitAt(0) < ChessFen.colIndexBase ? 0 : 1;
  code = code.toLowerCase();
  switch (code) {
    case 'p':
      return _moveP(team, code, activePos, target);
    case 'c':
      return _moveC(team, code, activePos, target);
    case 'r':
      return _moveR(team, code, activePos, target);
    case 'n':
      return _moveN(team, code, activePos, target);
    case 'b':
      return _moveB(team, code, activePos, target);
    case 'a':
      return _moveA(team, code, activePos, target);
    case 'k':
      return _moveK(team, code, activePos, target);
    default:
      return [];
  }
}