Sudoku Creator and Solver
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.