2024-06-16 10:40:22 发布
网友
我对制作国际象棋算法感兴趣。为此,我将使用python国际象棋库。然而,为了制作一个好的算法,我需要能够返回对方的合法动作,即使不是轮到他们。 所以在比赛开始时它会回来
董事会法律行动()->;[A2A4、A2A1、B2B4、B2B1等……]
我想知道在比赛开始时我是否可以说
棋盘上敌人的合法移动();[A7A5、A7A6等……]
或者,如果有任何算法方法,我可以做到这一点。 谢谢你抽出时间
一个解决方案是从游戏开始就在列表中记录合法移动:
legal_moves = [] current_legal_moves = board.legal_moves() legal_moves.append(current_legal_moves)
然后,您可以通过以下方式获得敌人合法移动的列表:
enemy_legal_moves = legal_moves[-1]
如果你想把这叫做游戏中的第一步,这显然是行不通的。如果您确实需要这样做,那么您可以:
从起始位置切换到黑色并运行电路板。legal_moves()。然后将这个列表作为起始值添加如下:legal_moves = [black_legal_moves_start_pos]
legal_moves = [black_legal_moves_start_pos]
写下从起始位置开始的20个首次合法移动的列表,并将其添加到legal_moves,如上面的选项1所示
legal_moves
一个解决方案是从游戏开始就在列表中记录合法移动:
然后,您可以通过以下方式获得敌人合法移动的列表:
如果你想把这叫做游戏中的第一步,这显然是行不通的。如果您确实需要这样做,那么您可以:
从起始位置切换到黑色并运行电路板。legal_moves()。然后将这个列表作为起始值添加如下:
legal_moves = [black_legal_moves_start_pos]
写下从起始位置开始的20个首次合法移动的列表,并将其添加到
legal_moves
,如上面的选项1所示相关问题 更多 >
编程相关推荐