Sudoku Game

A modern Sudoku game built with React. Features a clean, interactive UI and multiple difficulty levels.
About the Project
I created this game to practice TDD and to understand some of the algorithms for solving Sudoku. The original game was a Windows Forms application written in Visual Basic.NET and was very procedural and not very testable. I first rewrote it in Blazor and C# to make it more accessible, refactoring the code to be more object-oriented using design patterns and 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. The game features three levels of difficulty: easy, medium, and hard.
The React Rewrite
The Blazor implementation has been deprecated and replaced by a React frontend. The original Blazor Server approach, while functional, introduced latency and a server dependency that wasn't a good fit for a client-side game. Rather than migrate to Blazor WebAssembly, the decision was made to rebuild in React — a technology with a significantly larger ecosystem, more community resources, and broader industry adoption. React's component model and rich tooling make it well-suited for an interactive, client-side game like Sudoku. The React version is now the only version and is live at sudoku.xenobiasoft.com.
