'递归Python函数:国际象棋'

2024-06-25 23:08:12 发布

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

我试图写一个算法,通过计算所有可能的棋子(只有国王和车)的位置,找到最快的对决方式,然后根据最短的棋子数来决定下一步。在

我在理解如何使用python生成器来实现这一点时遇到了一些问题。我的问题是生成器和yield关键字的正确使用吗?

这是我的简短密码

  play(maxMoves, gameBoard):
      while not checkmate and gamemoves is less than maxmoves:

            if whitesturn:
                   legalmoves= all legal white moves
                    for x in legalmoves:
                        testBoard=deepcopy of board
                        testboard. makemove(x)
                        movesItTook=play_Gen(10,testBoard) 
                        if(movesItTook is less than previous best)...this is our new bestmove





  play_Gen(maxMoves, gameBoard):
      while gameboard is not checkmate and gamemoves is less than maxmoves:

            if whitesturn:
                   legalmoves= all legal white moves
                    for somemove in legalmoves:
                        testBoard=deepcopy of board
                        testboard. makemove(somemove)
            if(checkmate)
                yield gameBoard.turncount

Tags: andplayifisnotlessyieldthan