class Solver: def __init__(self, name, heuristic, Open, Closed): self.name = name self.heuristic = heuristic self.Open = Open self.Closed = Closed self.openset = None self.closedset = None self.board = None self.solution = None self.path = None def solve(self, board, root, goal): self.board = board self.openset = self.Open() self.closedset = self.Closed() self.solution = Searcher(self.openset, self.closedset, root, goal, self.heuristic) if self.solution.search(): trace = self.solution.trace(self.solution.Goal) self.path = trace[0] print self.name + ' solved ' + board + ' with cost', trace[-1] else: print self.name + ' could not solve ' + board def visualize(self, world, steps, color): for pos in steps: world.drawDot(pos, color) #world.dump() def save(self): world.image.save('solutions/' + self.board + '-' + self.name + '.png', 'PNG')