A web-based interactive Sudoku Solver built to demonstrate and visualize various Data Structures and Algorithms (DSA). This project was born out of a deep dive into Sudoku solving logic and serves as a practical application of algorithmic efficiency.
I started learning about Sudoku solving algorithms for a while, then I decided to apply what I learned in this project. I had a great experience building it and gained significant knowledge regarding algorithmic optimization and object-oriented design.
- Interactive Grid: Input your own puzzles or generate new ones.
- Multiple Algorithms: Choose between different solving strategies to see them in action.
- Responsive Design: Styled with SCSS for a modern look and feel.
- OOP Architecture: Built using JavaScript Object-Oriented Programming principles for clean, maintainable code.
This project was developed using a clean, object-oriented approach without external frameworks:
- HTML5: For the structural layout of the Sudoku grid.
- SCSS: For advanced styling and responsive design.
- JavaScript (ES6+): Core logic and DOM manipulation.
- JS OOP: Focused on Object-Oriented Programming to manage grid states and solver classes.
The application allows users to solve puzzles using different computational strategies:
- Backtracking: The standard recursive approach to explore all possibilities.
- Backtracking Optimized with a Priority Queue: An enhanced version that prioritizes cells with fewer possibilities.
- Genetic Algorithm: A heuristic search inspired by the process of natural selection.
- Doubly Circular Linked List: Utilizing specialized data structures to manage cell relationships.
The initial state of the application where users can input their own numbers or generate a new puzzle.

Users can choose from multiple solving strategies including Backtracking, Genetic Algorithms, and Doubly Circular Linked Lists.

The final output after the selected algorithm successfully finds the solution for the 9x9 grid.

Since this project uses standard web technologies, you can host it locally using a simple Python server.
- Clone the repository:
git clone (https://github.com/your-username/Sudoku-Solver.git)
- Navigate into the project folder:
cd Sudoku-Solver - Start a local server: Ensure you have Python installed, then run:
python -m http.server 8000
- View in Browser: Open your browser and navigate to:
http://localhost:8000