【发布时间】:2019-05-03 18:27:07
【问题描述】:
我正在下棋。我正在寻找在每一步之后从各个方向检查国王威胁的最佳算法。我做了一个非常基本的算法,如下所示:
public boolean inDanger(Board board) {
for (int i = this.column + 1; i < 8; i++) {
if (board.findPiece(this.row, i) instanceof Rook ||
board.findPiece(this.row, i) instanceof Queen) {
System.out.println("Check from right side");
return true;
}
}
}
我正在为各个方向这样做,所以我想问一下是否有更好的解决方案。
【问题讨论】:
-
我可能会将所有对手的棋子存储在一个数组中并循环遍历数组,为每个棋子获取可能的移动,看看它们是否与国王的位置匹配。