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

Python 有没有一种方法可以让那些不在家的人获得合法的搬家机会?蟒蛇棋,python,python-3.x,chess,python-chess,Python,Python 3.x,Chess,Python Chess,我对制作国际象棋算法感兴趣。为此,我将使用python国际象棋库。然而,为了制作一个好的算法,我需要能够返回对方的合法动作,即使不是轮到他们。 所以在比赛开始时它会回来 board.legal_moves()->[A2A4、A2A1、B2B4、B2B1等] 我想知道在比赛开始时我是否可以说 棋盘。敌人的合法移动()>[A7A5、A7A6等…] 或者,如果有任何算法方法,我可以做到这一点。 谢谢你抽出时间 一个解决方案是从游戏开始就在列表中记录合法移动: legal_moves = [] cur

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

board.legal_moves()->[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\u moves=[black\u legal\u moves\u start\u pos]

  • 写下从起始位置开始的20个首次合法移动列表,并将其添加到
    legal\u moves
    中,如上面的选项1所示


  • “然而,为了制作一个好的算法,我需要能够返回对方的合法移动,即使不是轮到他们。”-不,你没有。