vedranvinko icon

solver

vedranvinko | PRO | 10/08/24 07:42:42 AM UTC | 0 ⭐ | 402 👁️ | Never ⏰ | []
Python |

1.12 KB

|

Source Code

|

0 👍

/

0 👎

def is_valid(board, row, col, num):
    for x in range(9):
        if board[row][x] == num or board[x][col] == num:
            return False
    box_row, box_col = row // 3 * 3, col // 3 * 3
    for i in range(3):
        for j in range(3):
            if board[box_row + i][box_col + j] == num:
                return False
    return True
 
def solve(board):
    for i in range(9):
        for j in range(9):
            if board[i][j] == 0:
                for num in range(1, 10):
                    if is_valid(board, i, j, num):
                        board[i][j] = num
                        if solve(board):
                            return True
                        board[i][j] = 0
                return False
    return True
 
board = [
    [0, 3, 5, 0, 7, 8, 0, 6, 4],
    [0, 0, 4, 6, 5, 3, 8, 0, 2],
    [6, 0, 8, 0, 1, 4, 0, 0, 5],
    [3, 9, 1, 8, 2, 0, 4, 0, 0],
    [0, 0, 7, 3, 9, 0, 0, 8, 0],
    [8, 5, 6, 1, 4, 7, 9, 2, 3],
    [0, 6, 9, 4, 8, 2, 0, 0, 0],
    [5, 8, 2, 7, 3, 1, 6, 4, 9],
    [0, 0, 3, 5, 6, 9, 2, 0, 8]
]
 
solve(board)
 
for row in board:
    print(row)
 
 

Comments