Nonogram Programs

Miscellaneous puzzle-solving programs


I have a website about Nonograms, appropriately called Nonogram Solver.

To solve Nonograms, I have written a library in C (nonolib), and based on it a terminal-based command-line program (nonogram) and a multitasking RISC OS WIMP application (nonowimp).

In spite of what you might have read at Pencil Puzzles and Sudoku, nonolib is entirely portable (and always was)! nonogram is largely portable! nonowimp is for RISC OS only!

nonowimp runs in the RISC OS 3 WIMP desktop. (If you don't know what this means, it's probably of no use to you.) When run, it places an icon on the icon bar, onto which you can drop Nonogram puzzle files to be loaded.

Each puzzle you load gets its own window, showing an empty grid, and a row and column each of red and green lights. Green lights show that a row or column has information that has not been used by the solver since the line was last processed. Red/orange lights show which lines are currently being processed; only one such light will show at any one time.

The solver will warn you if the puzzle file has an imbalance in its data: the solver will attempt to solve it, but no correct solutions will be found. The solver will refuse to load puzzle files with syntax errors, giving a message describing the first fault it finds.

With an empty grid ready, you can set the puzzle running, and watch it being solved.

Eventually, if the puzzle has a solution, the solver will stop as soon as it is found. It will also stop if there is no more work to do. A marker in the corner of the grid indicates whether it is showing a correct solution. If there could be any more solutions, you will be able to set the solver to continue until it finds the next one, but you should save the current grid before continuing, if you want to keep the solution. New in 1.08: you can make the solver exhaust all possibilities without stopping. Wow!

At any time that a puzzle is loaded into a window, you can save the grid either as plain text or as a Draw file. You can then view it with a suitable application like Draw or Edit.

This program comes with interactive help (to be viewed with a suitable application like Help).

Version 1.06 supports finer granularity of processing than individual lines (this depends on the facilities provided by nonolib), and version 1.07 is able to generate Draw files that include the puzzle data along the sides of the grid. 1.08 adds options for the placement of clues in the generated files. The one from this example was used to create this PDF and SVG: [dog.pdf 9½KB] [dog.svgz 2¼KB]

Version 1.12 offers a choice of algorithms.

Version 1.14 has had a few bugs fixed.

Version 1.16 has improved Drawfile generation: solid areas should render faster (and the files might be a bit smaller too).

Version 1.22 uses the Olsak-based algorithm.

Version 1.24-1 has been relinked to fix a bug that restricted the drag area for saving files.


File Size Last modified Description Requirements and recommendations
Library; C Source (Git) GNU Make ISO C99 Binodeps
Terminal-based solver; C source (Git) GNU Make ISO C99 Binodeps
GUI solver; C source (Git); for cross-compilation to RISC OS GNU Make ISO C90 Binodeps
Source for forthcoming solver (Git) GNU Make Java 1.7
Java source documentation for forthcoming solver