def solveUsingIntersect(sb): alg2 = AlgIntersectValue2(sb) goodRun = False solutions = [] contSolving = True iteration = 0 while contSolving: # Check each place anyFound = False; for index in range(81): place = sb.getDigit(index) if place is None: # Place is empty, check if we can solve it solution = alg2.runAlg(SudokuBoard.coordsFromIndex(index)) if solution is not None: solutions.append((index, solution)) anyFound = True goodRun = True print("Iteration {0}: Found {1} solutions!".format(iteration, len(solutions))) for i in solutions: print("Index: {0} Solution: {1}".format(i[0], i[1])) sb.setDigit(i[1], i[0]) solutions.clear() contSolving = anyFound iteration += 1 # was this good run? return goodRun
def test_coordsFromIndexAgainstValue(self): self.sudokuBoard.clearBoard() self.sudokuBoard.loadBoard('preloads/sudoku1.txt') for index in range(81): valByIndex = self.sudokuBoard.getDigit(index) coords = SudokuBoard.coordsFromIndex(index) index2 = SudokuBoard.indexFromCoords(coords) valByIndex2 = self.sudokuBoard.getDigit(index2) self.assertTrue(valByIndex == valByIndex2)