I created this game to to practice TDD, learn Blazor, and to understand some of the algorithms with solving Sudoku. The original game was a Windows Forms application written in Visual Basic.NET and was very procedural and not very testable. I decided to rewrite the game in Blazor and C# to make it more accessible and to learn a new technology. I refactored the code to be more object-oriented, using some design patterns, and added dependency injection to make it more testable.
Sudoku is a logic-based, number-placement puzzle. The objective is to fill a 9×9 grid with digits so that each column, each row, and each of the nine 3×3 subgrids that compose the grid contain all of the digits from 1 to 9. I created a Sudoku game that generates puzzles and validates the solution. The game has three levels of difficulty: easy, medium, and hard.