isCheck method

bool isCheck(
  1. int team
)

is checkmate 检查是否被将军

Implementation

bool isCheck(int team) {
  ChessPos? kPos = fen.find(team == 0 ? 'K' : 'k');
  if (kPos == null) {
    // 老将没了
    return true;
  }

  List<ChessItem> pieces = fen.getAll();

  return pieces.any((item) {
    if (item.team != team &&
        !['K', 'k', 'A', 'a', 'B', 'b'].contains(item.code)) {
      // 这里传入目标位置,返回的可行点有针对性
      List<String> points = movePoints(item.position, kPos);
      if (points.contains(kPos.toCode())) {
        // print('$item $kPos');
        return true;
      }
    }
    return false;
  });
}