Пример #1
0
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
Пример #2
0
 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)