Пример #1
0
    def play_mcts_turn(self, move_color, rave=True):
        """
        Select turn for AI player
        Uses alpha-beta pruning to selection best turn
        and update game object to that ideal turn
        Parameters
        ----------
        move_color : char
            Whose turn is it is. This will be the color moved
        """
        self.check_move_available()
        if self.end:
            return

        game_copy = self.game_deep_copy(self, move_color)
        if not rave:
            mcts_game_tree = MCTS.TreeSearch(game_copy)
        elif rave:
            mcts_game_tree = MCTS_RAVE.TreeSearchRave(game_copy)
        mcts_game_tree.search_tree()
        best_node = mcts_game_tree.get_best_move()
        self.board = best_node.game.board
        self.end = best_node.game.end
        self.turn = best_node.game.turn
        self.winner = best_node.game.winner

        if not self.end:
            self.sub_turn = 'switch'
Пример #2
0
def create_game_data(new_game):
    return_li = []

    while not new_game.end:
        mcts_game_tree = MCTS.TreeSearch(new_game)
        mcts_game_tree.search_tree(15)
        best_node = mcts_game_tree.get_best_move()
        new_game.board = best_node.game.board
        new_game.end = best_node.game.end
        new_game.winner = best_node.game.winner

        if not new_game.end:
            new_game.turn = best_node.game.turn
        else:
            new_game.turn = best_node.game.turn + 1

        if not new_game.end:
            return_li.append(new_game.game_deep_copy(new_game, new_game.color))

    return return_li, new_game