Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sudokugrid = [[5, 3, 0, 0, 7, 0, 0, 0, 0],
- [6, 0, 0, 1, 9, 5, 0, 0, 0],
- [0, 9, 8, 0, 0, 0, 0, 6, 0],
- [8, 0, 0, 0, 6, 0, 0, 0, 3],
- [4, 0, 0, 8, 0, 3, 0, 0, 1],
- [7, 0, 0, 0, 2, 0, 0, 0, 6],
- [0, 6, 0, 0, 0, 0, 2, 8, 0],
- [0, 0, 0, 4, 1, 9, 0, 0, 5],
- [0, 0, 0, 0, 8, 0, 0, 7, 9]]
- def is_possible(grid, x, y, k):
- if k in grid[y]:
- return False
- vertical = [grid[i][x] for i in range(9)]
- if k in vertical:
- return False
- xstartbox, ystartbox = (x // 3) * 3, (y // 3) * 3
- for i in range(ystartbox, ystartbox + 3):
- for j in range(xstartbox, xstartbox + 3):
- if grid[i][j] == k:
- return False
- return True
- def solver(grid):
- for i in range(9):
- for j in range(9):
- if grid[i][j] == 0:
- for k in range(1, 10):
- if is_possible(grid, j, i, k):
- grid[i][j] = k
- result = solver(grid)
- if result is not None:
- return grid
- grid[i][j] = 0
- return None
- return grid
- solvedgrid = solver(sudokugrid)
- for x in solvedgrid:
- print(x)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement