Doesn’t generate unwinnable games[1] & detects dead-ends. Works offline after the first visit. No ads until game over, and they aren’t obtrusive.
Often lauded on HN, e.g. https://news.ycombinator.com/item?id=41972075 or https://news.ycombinator.com/item?id=42031052.
1: The probability that a random deal is unwinnable is ~20%. Wikipedia has a section on the subject: https://en.wikipedia.org/wiki/Klondike_(solitaire)#Probabili...