December 30, 2010

Heidi's Sudoku Hintpad

Sudoku Hints with Heidi's Sudoku HintpadI have just posted Heidi's Sudoku Hintpad, a Chrome Sudoku web app for playing the popular pencil-and-paper puzzle.

This version of Sudoku is inspired by Heidi's favorite way to solve Sudoku: instead of starting by eliminating candidates one square at a time, she loves to speed along looking for digits that can only be placed in one location because they are blocked by the same digit in various rows, columns, or blocks.

Hints, not Answers

The idea of the Sudoku Hintpad is to give you several different types of hints that don't give away the puzzle.

For example, after a mistake it is easy to get lost. You can click "Check" to quickly look for obvious mistakes, and ctrl-Check checks squares against the final answer without revealing the answer. The brower's "back" button can be used to undo as many steps as needed.

If are stuck you can click "Hint" to highlight a few specific squares to mull over. The hintpad will show squares that constrain the puzzle in some way that should allow you to make a deduction. Ctrl-Hint makes the hint more explicit by pointing to squares that should be solvable after you're done thinking.

No Boring Parts

If you think the task of crossing out candidates is boring, there is a "Pencilmarks" button that does it for you automatically. Or do it for one specific square by clicking the "?" on the entry box. Once you have pencilmarks, the "Hint" button can help you find naked sets, hidden sets, x-wing formations, and so on.

The hintpad will supply random Sudoku or load them from Gordon Royale's minimum sudoku collection; or any Sudoku puzzle can be entered directly.


The hintpad is assembled using John Resig's jQuery with Ben Alman's handy BBQ plugin to manage "back" button state. Kimberly Geswein's terrific Covered-By-Your-Grace font provides digits that look just like Heidi's handwriting, and Gordon Royale's Minimum Sudoku Collection provides minimal 17-hint puzzles when you hold control and click "New Puzzle." The app's sources are here, here, and here. From beginning to end (not including jquery and bbq), it is a complete app in about 1900 lines of code.

Posted by David at December 30, 2010 07:29 PM

Impressive work. Who is Heidi?

Posted by: Michael Harris at December 30, 2010 11:30 PM

Heidi is my wife and our family's resident Sudoku ninja. Our 15th anniversary is today, and she still puts up with my geek projects like this! The app is designed for her.

Posted by: David at December 31, 2010 12:40 AM

Ah. Now the app name makes sense ;) Again, your app is impressive. Its amazing what can be accomplished with a little JS. Your submission forced me to offer my app (sudoku for google chrome) for free. ;)

Posted by: Michael Harris at December 31, 2010 10:03 AM

Your app is great - it has a very nice interface! I've installed it too.

People have asked me for a way to pencil in a small number without writing a big number. I like the modal "pencil" solution you use. It could also be used to let people circle a pencilmark.

Posted by: David at December 31, 2010 04:16 PM

thanx for the compliment. I paid good $$ to get it styled. sigh...

now im just going for being one of the most popular sudoku apps in the app store...

Posted by: Michael Harris at January 2, 2011 03:54 PM


wow you have been busy on development! ;)

How are you evaluating your board difficulty levels? Do you use a library or did you roll your own?


Posted by: at February 6, 2011 01:19 PM

Hi Michael,

Heidi's Sudoku has its own rating function that is my own code.

The rating is based on the difficulty of the deductions that need to be made to solve the sudoku board. For example, if a sudoku can be solved by only looking at simple forced positions, then it's beginner, easy, or simple. (How easy is rated based on how hard it is to find the sequence of forced positions on a board. If there are many options, then it's easier.)

If a sudoku requires you to use "xwing" or "ywing" strategies to solve the board, it is harder. If you need to follow long forcing chains to deduce the solution, it is even harder; and so on.

Cataloging all the deductions needed and making it work fast enough to grade puzzles in real-time in Javascript is an interesting challenge.


Posted by: David at February 12, 2011 06:09 AM


I was wondering if you would be open to licensing you game generation/grading algorithm...please contact me at my email if you are.


Posted by: Michael Harris at May 2, 2012 08:40 AM


Posted by: Denny at November 27, 2015 04:02 PM
Post a comment

Remember personal info?