Nonogram solver algorithm used by nonochill, my nonogram puzzle generator/game (source code).
The algorithm is based on the procedure described in this article by Hennie de Harder, modified to support multiple colors in the puzzle.
I've used it to solve boards up to 20x20 with 5 colors. It currently has no ability to do a search, so fails for any puzzle that requires bifurcation.
# deno
deno add jsr:@jzumun/nonogram-solver
#node
npx jsr add @jzumun/nonogram-solverimport { solve } from "jsr:@jzumun/nonogram-solver"
const solution = solve({
row: [
[{ count: 1, val: 1 }],
[],
],
column: [
[{ count: 1, val: 1 }],
[],
]
})