Sudoku Explorer

To run the original 2006 application, download the JNLP file.

To run the 2014 verion that solves samurai sudoku puzzle, download this JNLP file.

You must have Java Web Start installed to run this file.

Basic Instructions

Click on a box and select a number from the pull-down to assign a number to a box. Grayed-out values are not allowed by the rules. Select "?" to reset the cell. Note that it may be reassigned right back to the same values by the rules, if the square is very constrained.

File->New to start over again.

Options->Freedom to get the colorful display of the number of options per cell: red is 9, purple is 1, black is 0.

Options->Solution to enable the background search that generates the "There are N solutions" messages in the status window.

Options->Diagonal to enable to great-diagonal constraint in addition to the typical row, column, and block constraints.

Options->Pick a Solution Causes the "Solve" Tool to return the first solution it finds, even if there are many solutions.

Tools->Solve Search for solutions and set the state of the board to a solution if and only one exists (or the first one if "Pick a Solution" is set.

File->Load loads the puzzle state from a file like this.


I don't much get into puzzle fads, usually. This all start for me when Donna started working on a Puzzle cache while we were on vacation. I'd never seen Sudoku puzzles before. She had come up with a scheme for solving them that was tedious but very logical. I decided, as a vacation/relaxation/metal-floss thing to see if I could write a program to solve the puzzles before she finished all six by hand. It seemed to me that the spirit of the puzzle cache was that you were supposed to solve the puzzles by yourself. So using a solver someone else wrote would be cheating. I reasoned that if I wrote the solver myself, then that was not really so different from the fact that Donna was using pencil and paper to solve the puzzles, instead of doing them in her head. They're all just tools, right?

Turns out that the first version of the software had a bug that resulted in one of the six puzzles generating two apparent solutions: a correct one and an incorrect one. That's better than two incorrect solutions, eh? That bug has been fixed in this version.

I won! Although it wasn't really a fair head-to-head race. We each just worked on our parts when we felt like it. I may have won only because she didn't sit down and race through them. The original version was written in C++ and was less than about 300 lines of pretty not-dense code. That first version could solve the six puzzles in far less than a second on my laptop.

This version is a port to Java with a flashy little UI on it. The fact that the solver is so fast got me interested in the idea of creating some automated tools for authoring the puzzles.

I've also become interested in the structure of the puzzles: what makes them easy or hard. The colorful visualization in this venison is a step in that direction of inquiry.

- Chris Mon Sep 1 15:44:07 2014