Generic nonogram guides teach rules the target app may not implement. This site ships its own engine, so every rule below is tied to specific code in src/games/nonogram/NonogramEngine.ts. Read the enforcement rules first, then the solving order.
What this nonogram engine enforces
The game offers three grid sizes, 5 by 5, 10 by 10, and 15 by 15, with five named puzzles per size, 15 puzzles total. Clues are computed as runs of consecutive filled cells, and a clue of 0 marks an empty line. You win only when every filled cell matches the solution exactly, cell by cell, in checkWin.
Three input states exist: empty, filled, and marked with an X. Marks are notes for you alone. The win check ignores them completely, so leftover X marks never block a win, and marking a cell that should be filled costs you nothing except the click.
The timer starts on your first grid interaction, not on puzzle load. Each puzzle keeps a best time keyed by size and index in localStorage under nonogram_best.
Free information the engine hands you
The engine reveals rule violations in real time through three channels.
1. Fill a cell whose solution value is 0 and the audio layer plays an error tone immediately. That tone is a per cell oracle, backed by the branch that compares your fill against the solution grid.
2. Complete a row or column whose runs match its clue and a success tone plays, from the isRowComplete and isColComplete check inside the click handler.
3. Clue numbers for a completed line render dimmed instead of dark, driven by the same completion check.
Turn sound on while solving. Filling a candidate cell and hearing no error tone confirms the solution marks it filled. This converts the hardest guessing situations into a one click verification.
Deterministic solving order
Apply these rules in order and stop whenever one fires.
1. Full line rule. When the clue sum plus one gap per additional block equals the width, the line is fully determined. The simplest case is a single clue equal to the width. Heart row 3 carries clue 5 in a 5 wide grid, so fill all five cells. Mushroom rows 6 and 7 carry clue 15 in a 15 wide grid, so fill the whole row.
2. Empty line rule. A clue of 0 means the line is empty. Fish rows 1, 14, and 15 carry clue 0 in the 15 by 15 grid. Mark them, which keeps your scanning clean.
3. Overlap rule. For a single clue k in width n where k exceeds n divided by 2, the middle cells are filled in every legal placement. A clue of 4 in a 5 wide row forces columns 2, 3, and 4, because the leftmost placement covers columns 1 to 4 and the rightmost covers 2 to 5, and the two overlap.
4. Cross reference rule. After a line fills completely, its completed cells constrain every crossing line. Re scan crossings after each success tone.
Work 5 by 5 puzzles first to calibrate, then 10 by 10, then 15 by 15. The rule set does not change with size, only the search effort.
The limit of the dimmed clue signal
A dimmed clue proves your runs match the clue, and nothing more. Two different cell arrangements can produce the same run list. In a 5 wide row, the clue 1 1 has six legal arrangements, so a dimmed clue there confirms block sizes while leaving positions open.
That is why the error tone matters more than the dimming. The tone checks individual cells against the solution, while the dimming checks only the run structure. When a line dims but the picture looks wrong around it, test suspicious cells with single fills and listen.
Honest limits of this engine
The puzzle set is fixed and small. Five puzzles per size means you can memorize all 15 pictures, at which point best times measure recall rather than deduction. The Next button cycles puzzles by index in a fixed order, so the sequence is predictable.
There is no penalty for wrong fills, no life system, and no hint button. Combined with the error tone oracle, a determined player can brute force any grid cell by cell. The undo stack does not exist, so undoing a mistaken fill means clicking the cell again yourself. Marks do not transfer between puzzles, and clearing site data erases all best times under nonogram_best.
Nonogram solving checklist
- [ ] Sound on, so error and success tones are audible.
- [ ] Full width and clue 0 lines resolved first.
- [ ] Overlap rule applied to every oversized single clue.
- [ ] Crossings re scanned after each success tone.
- [ ] Dimmed but suspicious lines tested with single fills.
- [ ] Final grid compared cell by cell before the last click.
Solve the [nonogram puzzles](/en/nonogram) with this rule order and the sound on. If a line ever dims while the engine still rejects the grid at the end, send us the puzzle name, the line number, and your fill pattern. That case would expose a rule gap worth documenting.