In the past I made 2 different sudoku games, the second game I made was a rewrite and improvement on the first one.
(Isn't that always the case when you write something for the 2nd time? :-))
A backend was constantly generating unsolved and solvable sudokus.
To make it a bit interesting, I introduced the concept of levels which where pointing to the difficulty of the sudoku you where going to solve. How higher the level, how more numbers that where scratched from the boxes. And this reflected on the scores which you would get, the higher the level the higer the score. But how longer it took to solve the sudoku how less points you could get. When putting a wrong number in a square, you could lose some points. So you couldn't just put numbers where you wanted, the brain was an important tool, as always!
The first version was made years before 2010, and I can't even recall when that was, nor did I found the complete source code. So in my eyes, it wasn't even worth publishing.