コード例 #1
0
ファイル: Solver.py プロジェクト: sys-git/pysudokusolver
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
コード例 #2
0
ファイル: display.py プロジェクト: sys-git/pysudokusolver
 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()
コード例 #3
0
ファイル: TestXWing.py プロジェクト: sys-git/pysudokusolver
 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()
コード例 #4
0
 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()