Untitled
unknown
python
a year ago
1.3 kB
8
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