📖 Overview / Abstract
The Sudoku Solver with C Graphics was one of my earliest and most memorable projects, developed between March 2009 and November 2010 during my bachelor's degree. At a time when internet access and programming resources were limited, I set out to design and implement my own algorithm to solve Sudoku puzzles—completely from scratch.
What made this project special was not just the solving logic but the interactive graphical interface I built in C. The program displayed a 9x9 Sudoku grid using C graphics and even supported mouse-based interaction, which was highly uncommon in C programming at that time. Users could click on any cell, and a popup grid of numbers (1 to 9) would appear above it. They could then select a value to fill in the puzzle manually. Once the user had entered their known values, a "Solve" button would instantly fill in the remaining unsolved cells with the correct solution.
Although the original demo and source code are no longer available, I have rebuilt the same Sudoku-solving algorithm on this website using JavaScript, HTML, and CSS. Visitors can still experience the solver in action under the Sudoku tab on playsolve.in.
This project was a turning point in my journey as a programmer—it was the first complete algorithm I designed and implemented independently. It combined my love for puzzles with the challenge of low-level graphics programming, giving me early exposure to problem-solving, algorithm design, and user interaction in software development.
🧩 Problem Statement / Motivation
Back in 2009–2010, Sudoku was gaining popularity as a brain-teasing puzzle, but there were hardly any interactive computer programs available that could both let users play Sudoku and solve it automatically. At that time, I didn't have easy access to the internet, smartphones weren't common, and reliable algorithms for Sudoku solving weren't widely published or known.
As a puzzle enthusiast, I often solved Sudoku on paper, but I wanted something more dynamic—an application that could visualize the grid, accept user input easily, and instantly solve the puzzle when needed. This curiosity became the motivation for building my own Sudoku Solver.
The challenge was twofold:
- Algorithmic – I had to design the Sudoku-solving logic completely from scratch, since references and resources were scarce.
- Graphical Interface – C didn't natively support modern UI features, so I had to extend it with graphics libraries to simulate mouse interactions, popups, and dynamic updates.
Even though I no longer have the original program, I later recreated the solving algorithm for the web using JavaScript, HTML, and CSS, so others can still try it live today. What started as a simple idea to solve puzzles ended up becoming a personal milestone project—one that combined logical problem-solving with the creativity of building a user-friendly interface at a time when such tools were rare.
🔑 Key Features
The Sudoku Solver with C Graphics wasn't just about solving puzzles—it was about creating an interactive experience at a time when such projects were rare. Some of its most notable features include:
- Interactive Graphical Interface – Unlike plain text-based C programs, this project displayed a full 9x9 Sudoku grid using C graphics, complete with colors and a mouse pointer.
- Mouse-Based Input – Clicking on a cell brought up a popup grid of numbers (1–9), allowing users to select values just like in a modern application.
- Instant Puzzle Solving – Once the known values were entered, a single click on the "Solve" button automatically filled in the rest of the Sudoku with the correct solution.
- Custom-Built Solving Algorithm – Since ready-made solutions weren't available back then, I designed and implemented the solving logic myself from scratch.
- Recreated on Web – Although I no longer have the original demo or code from 2009, I have rebuilt the algorithm on this website using JavaScript, HTML, and CSS. You can try it out yourself under the Sudoku tab on playsolve.in.
🛠️ Technologies & Tools Used
This project represents two different phases of my journey: the original C graphics implementation during my college years, and the later web-based version where I brought the algorithm back to life for others to experience.
- C Programming Language – The backbone of the original project, where I wrote the Sudoku-solving logic completely from scratch.
- C Graphics Library (BGI) – Used to draw the 9x9 Sudoku grid and create a visual interface on a blue output screen.
- Custom Mouse Support Library – Since C didn't provide built-in mouse interaction, I integrated an additional library to enable mouse pointer control and cell selection.
- Algorithm Design – A self-built Sudoku-solving algorithm, created without access to existing solutions or references, entirely based on logical reasoning and experimentation.
- JavaScript, HTML, and CSS – Years later, I recreated the algorithm on the web, blending it with a modern interface so that anyone visiting playsolve.in can interact with the solver directly under the Sudoku tab.
In short, the project combined low-level programming and graphics work from my early days with a later modern web stack, bridging the gap between a nostalgic college project and today's interactive web experience.
👨💻 My Role & Contributions
This project was a deeply personal one because I was responsible for every single part of it—from the logic to the interface. It became my first true "from scratch" software project.
- Algorithm Design – I created the Sudoku-solving logic entirely on my own, experimenting and refining until it could reliably solve puzzles. At that time, there were no ready-made references, so this was purely based on logical deduction and my own problem-solving approach.
- Graphics & Interface Development – I built the entire 9x9 Sudoku grid interface using C graphics. I wanted it to feel like an actual application rather than a plain console program.
- Mouse Input Integration – Since C didn't have built-in mouse support, I researched and integrated an external library to add this functionality. This allowed users to click cells, open a number grid, and select values, making the experience far more interactive.
- Puzzle Interaction & Solve Mechanism – I implemented the logic that let users manually fill known cells and then click a "Solve" button to watch the program complete the puzzle automatically.
- Web Rebuild – Years later, I didn't want the algorithm to remain just a memory. So I brought it back to life on my website using JavaScript, HTML, and CSS, allowing anyone to try it live today.
In short, I acted as the designer, developer, and problem-solver for every aspect of this project—from building the first graphical version in C to recreating it years later on the web.
🏆 Key Takeaways / Skills Gained
Looking back, the Sudoku Solver with C Graphics was much more than just a college project—it was the foundation of how I approach problem-solving and software development even today.
- Algorithmic Thinking – I learned how to break down a complex puzzle into smaller logical steps and design a complete solving method from scratch.
- Low-Level Graphics Programming – Working with C graphics gave me hands-on experience in building visual interfaces at a time when it was far from straightforward.
- UI/UX Awareness – Adding mouse support and interactive popups taught me the importance of making programs not just functional, but also user-friendly.
- Resourcefulness – With limited internet and almost no references, I learned to rely on experimentation, persistence, and my own reasoning to overcome challenges.
- Adaptability Across Platforms – Rebuilding the solver later with JavaScript, HTML, and CSS showed me how core logic can be adapted into modern technologies and reach more users.
- Independent Project Execution – From concept to completion, I gained the confidence to handle a project end-to-end, which later shaped my approach to larger, more complex work.
In short, this project instilled in me a problem-solver's mindset, the ability to work with limited resources, and the excitement of seeing ideas turn into working applications.
🙏 Thank You
Thank you for taking the time to read about my Sudoku Solver with C Graphics project. This was one of the first projects that truly shaped my journey as a programmer, and I've always enjoyed revisiting and sharing the story behind it.
If you'd like to know more details about the project, discuss the algorithm, or explore similar ideas, feel free to reach out to me at:
📩 shyammohan15nov89@gmail.com