Пример #1
0
    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()