Sudoku Solver and Puzzle Generator built in C++
Uses Backtracking and Recursive algorithms to find empty squares and fill them with valid numbers.

-
Uses a full puzzle generated using purely non-deterministic randomness by time-seeding the Mersenne Twister engine, according to the modern C++ standards.
-
The full puzzle is then subjected to a "hole-digging" algorithm, thant removes a number randomly and checks the solvability of the puzzle at every iteration, so that there's only one solution to the puzzle
-
The number of "holes" can be controlled by changing the difficulty factor variable value.