queue.append(QueueElem(ng, np)) queue.remove(temp) cnt += 1 return [] if __name__ == "__main__": # 解过河问题,并输出步骤 print("------------") print("Solution for 过河问题") question = Reader.questionToGraph( "examples/cross_river/instances/question.json") rules = Reader.rulesToRules("examples/cross_river/rules.json") goal = Reader.goalToRule("examples/cross_river/goal.json") # goal其实是一个rule (goalGraph, path) = bfs(question, rules, goal) if len(path) > 0: print("rules applied are (in order):") for i in path: print(rules[i].name) # 输出transform的步骤(依次应用了哪些规则) # 解推箱子,并输出步骤 print("------------") print("Solution for 推箱子") question = Reader.questionToGraph( "examples/sokoban_game/instances/trivial.json") rules = Reader.rulesToRules("examples/sokoban_game/rules.json") goal = Reader.goalToRule("examples/sokoban_game/goal.json") (goalGraph, path) = bfs(question, rules, goal)