This page describes a Groovy solution for ShortestSudokuSolver. Check the link for all the details, but basically the puzzle state is fed in as a String. Each line of the script must be no more than 80 characters in length.
The solution (210 characters plus 2 newlines):
Notes:
- The script could be 26 characters shorter if Groovy supported integer division.
- The script could be 2 characters shorter using
printrather thanprintlnif you didn't care about formatting - To make the function stop as soon as it finds the first solution (proper puzzles will only have one solution), the
elsebecomeselse println a;System.exit(1)
Add the following line to the script to solve a partially complete puzzle (should take just a few seconds):
Alternatively, add the following line to the script to solve a puzzle from scratch (may take 30-60 minutes or more):
Here is the more usual representation of the puzzle:

A slightly longer version (213 characters plus 2 newlines):
The expected output is: