In this new version I added "guess and validate".
In some difficult puzzles the solution can only be found by guessing a row or column at some point. After a guess, the puzzle can be solved further. At the end, the puzzle must be validated because a guess was made. If the puzzle is valid, the solution is found. Otherwise, another value for the row or column must be guessed.