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'
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