예제 #1
0
파일: features.py 프로젝트: ividya/cs221
 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
예제 #2
0
파일: features.py 프로젝트: ividya/cs221
 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
예제 #3
0
파일: features.py 프로젝트: ividya/cs221
 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
예제 #4
0
파일: features.py 프로젝트: ividya/cs221
 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