isCheck method
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;
});
}