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
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