def reset_puzzle(self, method): self.total_iters = 0 self.puzzle_state = BlocksworldPuzzle(setup.generate_puzzle()) self.visited = set() self.visited_directions = {} if method == 'bfs': self.queue = deque([self.puzzle_state]) elif method == 'dfs': self.queue = [self.puzzle_state] self.visited = {} elif method == 'id_dfs': self.queue = [self.puzzle_state] self.visited = {} elif method == 'a_star': self.queue = PriorityQueue() self.queue.put((0, self.puzzle_state)) self.heuristic = lambda heur: heur.total_manhattan_distance()