def test(newData): sem = Semaphore(0) class _listener(object): def __init__(self, s): self._s = s def __call__(self, who, event, args=None): if who==grid.NAME: if event==iModelNotifications.SOLVED(): print "Test listener: SOLVED !" self._s.release() elif event==iModelNotifications.UNSOLVABLE(): print "Test listener: UNSOLVABLE !" self._s.release() elif event==iModelNotifications.CUSTOM(): print "Test listener: Custom event[%s]: %s"%(grid, args) else: print "Test listener non-grid WHO: '%(W)s', event: '%(E)s', args: '%(A)s'"%{"E":event, "W":who, "A":args} solver2 = Solver(grid(3)) solver2.addListener(_listener(sem)) solver2.data(newData) print solver2.model.prettyprint() timeStart = time.time() print "Go: %(T)s"%{"T":time.strftime("%H:%M:%S", time.localtime(timeStart))} print "Go: %(T)s"%{"T":time.time()} try: solver2.solve() except (Solved, Solving), _e: assert False
def _onActionLoad(self, data=None): self._abortSolver() self._solver = None solver = Solver(grid(self._size)) if data==None: try: with open(self._filename, "r") as g: game = g.read() print "Loaded game!" solver.deserialize(game) print solver.model.prettyprint() except Exception, _e: print "Failed to load game:\n%s"%traceback.format_exc()
def setUp(self): newData = [[1, None, None, None, None, None, 5, 6, 0], [4, 0, 2, None, 5, 6, 1, None, 8], [None, 5, 6, 1, None, 0, 2, 4, None], [None, None, 0, 6, 4, None, 8, None, 1], [None, 6, 4, None, 1, None, None, None, None], [2, 1, 8, None, 3, 5, 6, None, 4], [None, 4, None, 5, None, None, None, 1, 6], [0, None, 5, None, 6, 1, 4, None, 2], [6, 2, 1, None, None, None, 3, None, 5]] self.model = grid(3) self.model.data = newData self.model.fix() self.x = Xwing() print self.model.prettyprint()
def setUp(self): newData = [ [4, None, None, None, None, None, 9, 3, 8], [None, 3, 2, None, 9, 4, 1, None, None], [None, 9, 5, 3, None, None, 2, 4, None], [3, 7, None, 6, None, 9, None, None, 4], [5, 2, 9, None, None, 1, 6, 7, 3], [6, None, 4, 7, None, 3, None, 9, None], [8, 5, 7, None, None, 8, 3, None, None], [None, None, 3, 9, None, None, 4, None, None], [2, 4, None, None, 3, None, 7, None, 9], ] self.model = grid(3) self.model.data = newData self.model.fix() self.x = FixCellNakedN() print self.model.prettyprint()