现在,我有一个方法boolean方法,如果国王在检查中,则返回true;如果国王不在检查中,则返回false。
我也有一种方法可以将威胁国王的棋子的所有坐标转换为2d数组列表,另一种方法可以将所有可能的移动都转换为另一个2d数组列表。
现在,我不知道要去哪里。您可以编写伪代码来说明如何进行编程以检查将死吗?
写一个确定国王是否在检查中的函数:
def inCheck(...):
for each opponent piece:
can that piece take the king?
然后编写一个执行此操作的函数:
def checkMate():
is inCheck():
for each legal move:
is still inCheck() after making the move?
蛮力进场:如果某个玩家国王处于检定状态,则尝试对该玩家所有剩余部分进行所有可能的移动。如果所有举动也导致国王受到控制,那么玩家将处于同伴状态。
这是checkmate的定义:
[Checkmate [...]是国际象棋[...]的游戏位置,其中棋手的国王处于受检状态(被擒获威胁),无法消除威胁。
即没有任何行动可以使国王不受到控制。
对比:
[如果玩家没有受到控制但没有合法举动,则为僵局,并且游戏立即以平局结束。