DAA 4

CODE

# 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

Popular posts from this blog

DAA 1

BT 4