Welcome to the N-Queens Solution Visualizer GitHub repository. This project offers an interactive and visual solution to the classic n-queens problem, where the goal is to place n queens on an n×n chessboard so that no two queens threaten each other. Utilizing advanced algorithms and efficient programming techniques, our visualizer not only finds all possible solutions to the problem but also provides a step-by-step illustration of the process.
- Dynamic Board Size Selection: Choose any board size from 4x4 to any feasible n×n configuration, directly from the user interface.
- Real-time Solution Visualization: Watch as the algorithm explores possible placements, backtracks, and ultimately finds all solutions.
- Multiple Algorithm Support: Compare the efficiency and approach of different algorithms solving the n-queens problem.
- Solution Counter: Get the total count of possible arrangements for the given board size.
- Interactive Chessboard: Visualize each queen's placement on a dynamically generated chessboard for easy understanding.
The project is developed using Python and its powerful libraries: Numpy, Scipy, Pandas, and Matplotlib. These tools offer an exceptional foundation for executing complex computations, managing and analyzing data, and generating insightful visualizations to bring the n-queens problem to life., leveraging cutting-edge web technologies for a seamless user experience. It employs backtracking and other optimization algorithms to efficiently explore possible solutions, illustrating the algorithm's thought process in real-time on the chessboard.
Clone this repository to get started:
git clone https://github.com/MobinEzzati/N-queens-problem.git
Navigate to the project directory and open index.html in your browser to launch the application. Follow the on-screen instructions to select the board size and start the visualization.
Contributions are welcome! If you have suggestions for improvements, encounter a bug, or want to extend the functionality, please feel free to open an issue or submit a pull request.