def solve(data): SOLUTION = ' ' * 81 solver = BacktrackingSolver() # data = "XX3X2X6XX9XX3X5XX1XX18X64XXXX81X29XX7XXXXXXX8XX67X82XXXX26X95XX8XX2X3XX9XX5X1X3XX" layer = Layer(data, SOLUTION) sol = solver.solve(layer) d = list(data) for s in sol: d[s[0]] = s[1] return int("".join(d[:3]))
def test_solver(self): solver = BacktrackingSolver([LineBlockPreprocessor]) data = 'XX4XXX62X76X12X8XXX2XXXX1X74XX9X136223X4X' \ '65916913524789X3XXX2XX876245913X42XXX7XX' layer = Layer(data, SOLUTION) self.assertEquals(solver.solve(layer), [ [4, '3'], [0, '5'], [8, '9'], [11, '9'], [14, '4'], [17, '5'], [16, '3'], [18, '3'], [20, '8'], [1, '1'], [23, '9'], [22, '6'], [21, '5'], [25, '4'], [38, '7'], [29, '5'], [28, '8'], [31, '7'], [40, '8'], [55, '5'], [58, '1'], [61, '8'], [59, '7'], [5, '8'], [3, '7'], [57, '6'], [62, '4'], [72, '1'], [75, '8'], [76, '9'], [77, '3'], [79, '5'], [80, '6']])