Please forgive English speaker butting in...
This is a cool idea. I have a couple of thoughts:
1) Before attempting to give a hint, the program would have to check whether all cells containing values were correct. Perhaps sometimes the reason someone gets stuck is that an incorrect assumption was made somewhere, and a wrong value has been entered in a cell. In this case, maybe the user could have the choice of having the program flag the incorrect cell(s) or simply state that at least one cell contains an incorrect value.
2) Assuming all values currently in the grid are correct, the program could look for cells or cages that can be determined with the current information then give hints, such as
. . . a) In nonet / row / column X, what is the only cell that can contain a 2?
. . . b) Look at the 14+ cage in nonet X
. . . c) Apply the rule of 45 to columns G, H, and I
I rarely attempt the 9x9 difficult pattern puzzle because there are too many combinations and I don't know how to narrow them down. But surely as Hans suggests, there must be strategies for solving, since many people do manage to solve them. When I first tried solving the difficult Killer Sudokus, I had trouble, but I've learned a few strategies that (usually) help. So it's a matter of breaking the puzzle down starting from the "known" cells, moving to what can be deduced from the initial knowns, and then (the hard part), finding the next step and the next and the next until it's solved.