Sudoku Creator and Solver

Sudoku Demo

Project Summary

This Sudoku project was completed as the final project for my Software Design and Implementations course. We needed to create a solver for input Sudoku puzzles, and also needed to be able to generate random, uniquely solvable puzzles.

I worked more on the solving portion, which was of course crucial to the puzzle generation portion as well. We were able to implement some constraint propagation algorithms which would run their course prior to completing a DFS backtracking solution algorithm. To create a new puzzle, we solved an empty grid with random number placement order seeded by the system time. This allowed for a unique solved board to be generated. From here, the creator was able to incrememntally remove random cells, ensuring that the puzzle was still uniquely solvable, until the desired number of cells was removed.

The puzzle solution and generation was written in C. To extend the project beyond the basic scope, one of my team members also wrote a front and backend for a web-based GUI, shown on this page, which was written in Node and React.