def solvableByAC(self, sudoku): prev_domain = 0 rounds = 0 while True: domains = self.arc_consistency(sudoku, 1) rounds += 1 diff = domains[0] - prev_domain prev_domain = domains[0] if diff != 0: continue else: if sudoku.isComplete(): self.arcConsistencyCounter = rounds return True else: return False
def isSolvableByAC(self, sudoku): domains = dict() for i in range(0, 9): domains[i] = dict() prev_domain = None size_of_domain = 0 while True: self.arcConsistencyCounter += 1 for i in range(9): for j in range(9): domains[i][j] = sudoku.getLegalMoves(i, j) size_of_domain += len(domains[i][j]) if len(domains[i][j]) == 1: sudoku.setSquare(i, j, domains[i][j][0]) if (prev_domain == domains): return False if (sudoku.isComplete()): return True prev_domain = domains
def isSolvableByAC(self, sudoku): domains = dict() for i in range(0, 9): domains[i] = dict() prev_domain = None size_of_domain = 0 while True: self.arcConsistencyCounter += 1 for i in range(9): for j in range(9): domains[i][j] = sudoku.getLegalMoves(i, j) size_of_domain += len(domains[i][j]) if len(domains[i][j]) == 1: sudoku.setSquare(i, j, domains[i][j][0]) if prev_domain == domains: return False if sudoku.isComplete(): return True prev_domain = domains