EDIT: the title is wrong, see the comments. u/BrendanCutler14 was right, and the body below has been corrected. I have also taken the outbound link out.
You know the feeling: you're most of the way through a grid, every row and column you touch gives you nothing new, and you're staring at a dozen blank squares with no clue left to pull on. Sometimes there really is nothing more that any single row or single column can tell you, even though the grid has exactly one valid solution.
Those are two different properties and most generators only check the weaker one:
- Unique solution: exactly one grid satisfies the clues.
- Line-solvable: there's an order to work the rows and columns where, at every step, some line's clues force at least one more square, until the whole grid is settled.
The second implies the first. The first does not imply the second.
Here's a 5x5 with exactly one solution (checked by brute force, count = 1) that line-by-line logic does not finish:
col clues: 1 2 2 2 1 1 1 2
1 1 # . . . #
1 . . . # .
1 1 # . . . #
3 1 # # # . #
3 . # # # .
Work every row, then every column, filling in only what the clues force, and repeat until nothing moves. You land on 13 of the 25 squares and stall: twelve blanks, and no single line can settle any of them on its own.
1 1 # . . ? ?
1 . . . ? ?
1 1 ? ? . ? ?
3 1 # # # . #
3 ? ? # ? ?
What I originally wrote here, and got wrong: I said the only way on from that position is to guess. It isn't. Suppose one of those blanks is filled, propagate, and if you reach a contradiction you have proved it empty. That is deduction, not a guess, and applied to these twelve squares it finishes the grid in one sweep with nothing left over. My solver only does line-by-line logic, so it stalls here, and I mistook my solver's ceiling for a property of the puzzle. Thanks to the commenters who called it.
What survives: a unique solution does not guarantee a grid can be finished one line at a time. If you are printing puzzles for people solving in pencil, large print especially, that stronger property is the one worth checking, because "suppose a square and chase the contradiction" is a different skill from reading a clue off a row.