Пример #1
0
from SudokuBoard import SudokuBoard
from AlgIntersectValue2 import AlgIntersectValue2
from AlgNumbersInLayers import AlgNumbersInLayers

# Create and load board
sb = SudokuBoard()
sb.loadBoard('preloads/sudoku1.txt')
sb.printBoard()

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: