def __create_child(self, player: Player, action: Action, turn_counter: int, max_speed: int): if player.speed == max_speed and action == Action.speed_up: return modified_game = self._game.copy() game_service = GameService(modified_game) game_service.turn.turn_ctr = turn_counter SearchTreeRoot.__perform_simulation(game_service, action, modified_game.get_player_by_id(player.id)) game_service.check_and_set_died_players() return SearchTreeNode(modified_game.copy(), action)
def __try_combination(game: Game, player_ids_to_watch: List[int], combination: Tuple[Action], turn_counter: int): modified_game = game.copy() game_service = GameService(modified_game) game_service.turn.turn_ctr = turn_counter players = modified_game.get_players_by_ids(player_ids_to_watch) for j in range(len(combination)): action = combination[j] player = players[j] SearchTreeRoot.__perform_simulation(game_service, action, player) game_service.check_and_set_died_players() return SearchTreeRoot(modified_game.copy())