Esempio n. 1
0
 def feature_4(self, sudoku):
     max_number = -sys.maxint - 1
     for i in range(9):
         col = sudoku.getCol(i)
         number_filled = 0
         for x in col:
             if x != 0:
                 number_filled += 1
         max_number = max(number_filled, max_number)
     for i in range(9):
         row = sudoku.getRow(i)
         number_filled = 0
         for x in row:
             if x != 0:
                 number_filled += 1
         max_number = max(number_filled, max_number)
     for i in range(3):
         for j in range(3):
             filled = 0
             square = sudoku.getSquare(i * 3, j * 3)
             for x in square:
                 if x != 0:
                     filled += 1
             max_number = max(filled, max_number)
     return max_number
Esempio n. 2
0
 def feature_4(self, sudoku):
     max_number = -sys.maxint - 1
     for i in range(9):
         col = sudoku.getCol(i)
         number_filled = 0
         for x in col:
             if x != 0:
                 number_filled += 1
         max_number = max(number_filled, max_number)
     for i in range(9):
         row = sudoku.getRow(i)
         number_filled = 0
         for x in row:
             if x != 0:
                 number_filled += 1
         max_number = max(number_filled, max_number)
     for i in range(3):
         for j in range(3):
             filled = 0
             square = sudoku.getSquare(i * 3, j * 3)
             for x in square:
                 if x != 0:
                     filled += 1
             max_number = max(filled, max_number)
     return max_number
Esempio n. 3
0
    def feature_6(self, sudoku):
        squares = []
        for i in range(3):
            for j in range(3):
                squares.append(sudoku.getSquare(i * 3, j * 3))
        maxNumComplete = 0
        for square in squares:
            numComplete = 0
            rows = [square[0:3], square[3:6], square[6:9]]
            cols = []
            for i in range(3):
                cols.append([rows[j][i] for j in range(3)])
            rows.extend(cols)

            for row in rows:
                if row.count(0) == 0:
                    numComplete += 1
            if numComplete > maxNumComplete:
                maxNumComplete = numComplete
            if maxNumComplete == 3:
                break
        return maxNumComplete
Esempio n. 4
0
    def feature_6(self, sudoku):
        squares = []
        for i in range(3):
            for j in range(3):
                squares.append(sudoku.getSquare(i * 3, j * 3))
        maxNumComplete = 0
        for square in squares:
            numComplete = 0
            rows = [square[0:3], square[3:6], square[6:9]]
            cols = []
            for i in range(3):
                cols.append([rows[j][i] for j in range(3)])
            rows.extend(cols)

            for row in rows:
                if row.count(0) == 0:
                    numComplete += 1
            if numComplete > maxNumComplete:
                maxNumComplete = numComplete
            if maxNumComplete == 3:
                break
        return maxNumComplete