有没有一种方法可以让那些不在家的人获得合法的搬家机会?Python

2024-06-16 10:40:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我对制作国际象棋算法感兴趣。为此,我将使用python国际象棋库。然而,为了制作一个好的算法,我需要能够返回对方的合法动作,即使不是轮到他们。 所以在比赛开始时它会回来

董事会法律行动()->;[A2A4、A2A1、B2B4、B2B1等……]

我想知道在比赛开始时我是否可以说

棋盘上敌人的合法移动();[A7A5、A7A6等……]

或者,如果有任何算法方法,我可以做到这一点。 谢谢你抽出时间


Tags: gt算法棋盘感兴趣董事会国际象棋法律动作
1条回答
网友
1楼 · 发布于 2024-06-16 10:40:22

一个解决方案是从游戏开始就在列表中记录合法移动:

legal_moves = []

current_legal_moves = board.legal_moves()
legal_moves.append(current_legal_moves)

然后,您可以通过以下方式获得敌人合法移动的列表:

enemy_legal_moves = legal_moves[-1]

如果你想把这叫做游戏中的第一步,这显然是行不通的。如果您确实需要这样做,那么您可以:

  1. 从起始位置切换到黑色并运行电路板。legal_moves()。然后将这个列表作为起始值添加如下:legal_moves = [black_legal_moves_start_pos]

  2. 写下从起始位置开始的20个首次合法移动的列表,并将其添加到legal_moves,如上面的选项1所示

相关问题 更多 >