def solve_sudoku(_grid): res = check_sudoku(_grid) if res == False or res == None: return res else: grid = copy.deepcopy(_grid) for row in range(9): for col in range(9): if grid[row][col] == 0: for i in range(1,10): grid[row][col] = i new = solve_sudoku(grid) # the reason deepcopy is needed if new != False: return new return False return grid
def test_create_solvable_board(): for i in range(1000): assert check_sudoku(create_solvable_board()) == True print "Test Successful"