To solve the puzzle, you must reconstruct the image by figuring out how the color blocks must be place in each row and column. The numbers tell the sizes of the blocks of the foreground color in that row and column.In the run-time tests performed for this survey, I always ask the solvers to find two solutions, unless the solver doesn't support that option.This obviously puts the solvers that weren't really designed for that at a disadvantage.This seems to be the goal that most designers of solvers have in mind for their programs.But I wrote my solver as a tool to check puzzles designed by users of the webpbn site. Others may have a unique solution, but be too difficult or too easy.
This may seem unfair to these solvers, and it is, but I don't really see much of any practical use for a simple solver.They might, for example, exploit regularities that often appear in human designed puzzles to guess correctly which cells should be black, so as to get more quickly to the solution and avoid running into dead ends.A validator, on the other hand, loves finding the contradictions that constitute dead ends, because they reduce size of the search tree. I run a community paint-by-number website, webpbn.com, where people create and solve such puzzles. Kenichi Ishigaki's Games:: Nonogram Perl Module 5.1.9. Vladimir Sukhoy's C Paint by Numbers Solver 5.1.11. One of the many charms of these puzzles is that they are quite easy to create as well as to solve.A program to do puzzle validation has a bit of a tougher job than a simple solver. This difference impacts the design of the solver in a fairly deep way.