Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.30 KB | None | 0 0
  1. sudokugrid = [[5, 3, 0, 0, 7, 0, 0, 0, 0],
  2.               [6, 0, 0, 1, 9, 5, 0, 0, 0],
  3.               [0, 9, 8, 0, 0, 0, 0, 6, 0],
  4.               [8, 0, 0, 0, 6, 0, 0, 0, 3],
  5.               [4, 0, 0, 8, 0, 3, 0, 0, 1],
  6.               [7, 0, 0, 0, 2, 0, 0, 0, 6],
  7.               [0, 6, 0, 0, 0, 0, 2, 8, 0],
  8.               [0, 0, 0, 4, 1, 9, 0, 0, 5],
  9.               [0, 0, 0, 0, 8, 0, 0, 7, 9]]
  10.  
  11.  
  12. def is_possible(grid, x, y, k):
  13.     if k in grid[y]:
  14.         return False
  15.     vertical = [grid[i][x] for i in range(9)]
  16.     if k in vertical:
  17.         return False
  18.     xstartbox, ystartbox = (x // 3) * 3, (y // 3) * 3
  19.     for i in range(ystartbox, ystartbox + 3):
  20.         for j in range(xstartbox, xstartbox + 3):
  21.             if grid[i][j] == k:
  22.                 return False
  23.     return True
  24.  
  25.  
  26. def solver(grid):
  27.     for i in range(9):
  28.         for j in range(9):
  29.             if grid[i][j] == 0:
  30.                 for k in range(1, 10):
  31.                     if is_possible(grid, j, i, k):
  32.                         grid[i][j] = k
  33.                         result = solver(grid)
  34.                         if result is not None:
  35.                             return grid
  36.                         grid[i][j] = 0
  37.                 return None
  38.     return grid
  39.  
  40.  
  41. solvedgrid = solver(sudokugrid)
  42. for x in solvedgrid:
  43.     print(x)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement