SudokuHelper is an application that acts like an electronic Sudoku grid. It supports 9x9, 12x12, and 16x16 Sudokus, both in the classic and Gosu variant, where cells can be marked to only accept even numbers. The application neither creates Sudokus itself nor provides a solver for them; it is just a more convenient way to solve a Sudoku from a magazine or other external source than doing it on paper, using pencil and eraser.
The application's main features are:
Invalid cell values are marked in red.
Candidate values can be added and removed from a cell. Setting a cell's value will automatically remove candidates no longer possible in other cells.
All actions can be undone, the undo stack is only limited by available memory.
Named marks can be set for the current undo stack state and one can later restore the stack to such a named mark.
The complete Sudoku can be saved to file, including the undo stack, and later loaded again from such a file.
The project can be found on GitHub: https://github.com/PeterBelow/SudokuHelper
The code is a good example (IMO) of how to uncouple the UI from the "buisness" code using interfaces, in a kind of MVC design. It is free (public domain) without restrictions.