CSP ( CONSTRAINTS SATISFACTION )
global N
N = int(input("Enter number of queens: "))
def printSolution(board):
for i in range(N):
for j in range(N):
print(board[i][j], end=" ")
print()
def isSafe(board, row, col):
# Check if there is a queen in the current row
for i in range(col):
if board[row][i] == 'Q':
return False
# Check upper diagonal on left side
for i, j in zip(range(row, -1, -1), range(col, -1, -1)):
if board[i][j] == 'Q':
return False
# Check lower diagonal on left side
for i, j in zip(range(row, N, 1), range(col, -1, -1)):
if board[i][j] == 'Q':
return False
return True
def solveNQUtil(board, col):
if col >= N:
return True
for i in range(N):
if isSafe(board, i, col):
board[i][col] = 'Q'
if solveNQUtil(board, col + 1):
return True
board[i][col] = 0
return False
def solveNQ():
board = [['.' for i in range(N)] for j in range(N)]
if solveNQUtil(board, 0) == False:
print("Solution does not exist")
return False
print("Queens Placement:")
printSolution(board)
return True
solveNQ()