Python 为什么';t TicTacToe minimax工作正常

Python 为什么';t TicTacToe minimax工作正常,python,tic-tac-toe,minimax,Python,Tic Tac Toe,Minimax,我很久以前做过这个Tictatoe,今天决定添加AI选项。然而,对于我来说没有明显的原因,它就是不工作,即使我从工作的javascript代码转换它 删除了一些与问题函数无关的函数 def minimax(self, is_max): if self.won(): return 1 if self.winner() == 'O' else -1 if self.draw(): return 0

我很久以前做过这个Tictatoe,今天决定添加AI选项。然而,对于我来说没有明显的原因,它就是不工作,即使我从工作的javascript代码转换它

删除了一些与问题函数无关的函数

    def minimax(self, is_max):
        if self.won():
            return 1 if self.winner() == 'O' else -1

        if self.draw():
            return 0

        if is_max:
            best_score = float('-inf')
            for i in range(9):
                if self.valid_move(i):
                    self.board[i] = 'O'
                    score = self.minimax(False)
                    self.board[i] = ' '
                    best_score = max(best_score, score)
            return best_score
        else:
            best_score = float('inf')
            for i in range(9):
                if self.valid_move(i):
                    self.board[i] = 'X'
                    score = self.minimax(True)
                    self.board[i] = ' '
                    best_score = min(best_score, score)
            return best_score

    def best_move(self):
        best_score = float('-inf')
        move = 0
        for i in range(9):
            if self.valid_move(i):
                self.board[i] = 'O'
                score = self.minimax(False)
                self.board[i] = ' '

                if score > best_score:
                    best_score = score
                    move = i

        return move

    def move_ai(self):
        self.board[self.best_move()] = self.current_player()
        self.current_move += 1
        self.show_board()



你会添加你引用的原始JavaScript代码吗?“不起作用”不是一个好的问题陈述。嗯,它没有做出正确的动作。我真的说不出更多的了这是我提到的js代码。我已经对一些部分进行了更改,因为我必须使其与我的代码兼容,但是结构是相同的。您是否进行过任何调试?我建议你读书。