DAA 4
# 8-Queens Problem using Backtracking
N = 8
def printBoard(board):
for row in board:
print(row)
def isSafe(board, row, col):
for i in range(row):
if board[i][col] == 1 or \
(col - (row - i) >= 0 and board[i][col - (row - i)] == 1) or \
(col + (row - i) < N and board[i][col + (row - i)] == 1):
return False
return True
def solve(board, row):
if row == N:
print("\nFinal 8-Queens Matrix:")
printBoard(board)
return True
for col in range(N):
if isSafe(board, row, col):
board[row][col] = 1
if solve(board, row + 1):
return True
board[row][col] = 0 # Backtrack
return False
# ---- Main Program ----
board = [[0]*N for _ in range(N)]
first_col = int(input("Enter column (0-7) for first Queen in row 0: "))
board[0][first_col] = 1
solve(board, 1)
Comments
Post a Comment