Most Honorable Sudoku
What is Most Honorable Sudoku? Most Honorable Sudoku, or MHS, is a lightweight algorithmic program for solving Sudoku puzzles. The program comes with a clean graphical interface (shown below), where the 'known' numbers of the puzzle may be entered - hitting the 'Solve' button will fill in all the blanks.
What's an "algorithmic" solver, and why use it? An algorithmic program uses a series of algorithms to solve a problem, as opposed to a "brute-force" program, which simply tries out every possible combination until it finds one that works. Although brute-force programs are often easier to write, the main problem is that they're a lot slower than algorithmic programs - performing mathematics is much easier, even for a computer, than simply attempting billions upon billions of combinations.
This program runs in a fraction of a second - does speed really matter? In this case, no. Given that it takes the user at least 30 seconds to type the puzzle into the interface, the algorithm shaving a few milliseconds off of the solve time doesn't make much difference. It is kept as a proof of concept - if ever someone needed to solve a million puzzles as quickly as possible, an algorithmic solver could run in seconds instead of hours, especially on older computers. Though this program doesn't save much time, the concepts it introduces could in the future.
What if I have an unsolvable puzzle? If you put a puzzle with no solution or multiple solutions into the program, the program will put an 'X' in one or more of the boxes, to show that it could not complete the solve. At this point, the user may tick the 'Force' checkbox - if the puzzle has multiple solutions, then forcing it will provide one of many. If it has none, forcing it will still return 'X's.
Why doesn't the program resize properly/Why aren't there 'box' markers like on most Sudoku puzzles? I wrote this program quite a while ago, back when Java's Swing package (the graphics package used to make this interface) was still rather new to me. As such, some functionalities were never included or explored. Nowadays, I tend to focus on newer projects, and as such have no plans to go back and 'fix' the flaws in this program - I would likely want to redesign them from scratch, if anything.
Where can I get Most Honorable Sudoku? You can download the program and all of its source code here.