Advertisement
vedranvinko

solver

Oct 8th, 2024
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.12 KB | Source Code | 0 0
  1. def is_valid(board, row, col, num):
  2.     for x in range(9):
  3.         if board[row][x] == num or board[x][col] == num:
  4.             return False
  5.     box_row, box_col = row // 3 * 3, col // 3 * 3
  6.     for i in range(3):
  7.         for j in range(3):
  8.             if board[box_row + i][box_col + j] == num:
  9.                 return False
  10.     return True
  11.  
  12. def solve(board):
  13.     for i in range(9):
  14.         for j in range(9):
  15.             if board[i][j] == 0:
  16.                 for num in range(1, 10):
  17.                     if is_valid(board, i, j, num):
  18.                         board[i][j] = num
  19.                         if solve(board):
  20.                             return True
  21.                         board[i][j] = 0
  22.                 return False
  23.     return True
  24.  
  25. board = [
  26.     [0, 3, 5, 0, 7, 8, 0, 6, 4],
  27.     [0, 0, 4, 6, 5, 3, 8, 0, 2],
  28.     [6, 0, 8, 0, 1, 4, 0, 0, 5],
  29.     [3, 9, 1, 8, 2, 0, 4, 0, 0],
  30.     [0, 0, 7, 3, 9, 0, 0, 8, 0],
  31.     [8, 5, 6, 1, 4, 7, 9, 2, 3],
  32.     [0, 6, 9, 4, 8, 2, 0, 0, 0],
  33.     [5, 8, 2, 7, 3, 1, 6, 4, 9],
  34.     [0, 0, 3, 5, 6, 9, 2, 0, 8]
  35. ]
  36.  
  37. solve(board)
  38.  
  39. for row in board:
  40.     print(row)
  41.  
  42.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement