Untitled
unknown
python
4 months ago
1.3 kB
5
Indexable
def validator(T): # Validate rows and columns for i in range(9): sum_row = 0 sum_col = 0 for j in range(9): sum_row += T[i][j] sum_col += T[j][i] if sum_row != 45 or sum_col != 45: return False for box_row in range(0, 9, 3): for box_col in range(0, 9, 3): sum_box = 0 for i in range(box_row, box_row + 3) for j in range(box_col, box_col + 3): sum_box += T[i][j] if sum_box != 45: return False return True def valid_numbers(T, i): avalible = [True for i in range(10)] avalible[0] = False for j in range(9): if T[i][j] != 0: avalible[T[i][j]] = False moves = [] for i in range(10): if avalible[i]: moves.append(i) return moves def sudoku_gen(T, i=0, j=0): if i == 8 and j == 8: if validator(T): print(T) else: return if j == 9: i +=1 j = 0 if T[i][j] == 0: numbers = valid_numbers(T, i) for num in numbers: T[i][j] = num sudoku_gen(T, i, j+1) T[i][j] = 0 else: sudoku_gen(T,i, j+1) sudoku_gen(T)
Editor is loading...
Leave a Comment