I am currently developing a sudoku helper program. As I do research on the different techniques and incorporate them in the program, I am finding out a lot about the game. Single Hidden, Row Elimination, X-Wing and so on are great methods to use and usually I only use to solve games but I developed one method that has ruined the game for me. Row iteration - Column elimination method has made every sudoku game trivial, not challenging and straight forward robotic in nature. Once the pencil comes out or the numbers are entered into a program, all I want to do is consider my method and stop using or developing new techniques. And with this I am at a cross road. Do I start doing what machines do by considering all options and deducing a solution based on satisfying a requirement or do I use my less superior method and challenge myself? Once probability, programming experience and math are combined with the game, the lust is gone. The challenge is no longer there and fun stops. I am going to finalize the program and have only these options available to the user:
single_naked
single_hidden
double_naked
double_hidden
triple_naked
triple_hidden
row_elimination
x-wing
check current answer
I have more advanced techniques but then its just a machine doing the thinking. The challenge now will be to get the program to teach the user if they are stuck on how to move to the next step using those techniques. For me, the game has lost its flavor but I will seek joy in teaching those who still are bewildered by it.