In this new version I solved a bug in the function "guess and validate". The validation of the found solution when a guess was made didn't work properly. The check for same rows and columns was not functioning.
This bug was discovered thanks to John Manfredi who tried to solve this puzzle with my program. To solve this puzzle you have to make a guess at some point where you have 3 choices. In this point of view the solver is a "brute forcer" who will check for the valid solution.
You should try to solve the puzzle by yourself!