So I have been programming my adventure project's "pausemenu" which would include somekind hint system to give hints for stucked players. This led me thinking about various hint systems to implement and decided to start little discussion here

If you were to include a hint system to your adventure, what kind it would be? What works best in your opinion? Do you think some restrictions would be needed? I think somekind locking could be needed but not sure yet.
I have these kind of solutions in mind now:
1) Basically player can click button to view a new hint about the puzzle up to the three hints, where final would be either solution or something very close of solution.
2) Same as before except hint is "locked" by little minigame. Much like Machinarium had that flying key shooter game.
3) Hint would be time locked. After viewing first hint, player has to wait 5min to view next. I doubt this would work well though.
4) Hints could be opened with somekind "hintpoints" which could be found randomly from the environment. There would be limited amount of them leading player to try first solve puzzle on their own. DS game utilized hint coins which could be found from objects from background and then be used in puzzles.
Any thoughs of different systems or overall experiences?