It’s also my experience that KPatience doesn’t skip unwinnable games. It also occasionally generates one where it can’t determine whether the game is solvable or not, which is probably due to search space limitations. I’ve won a couple of those, but they’re risky to start in the first place!
I can see the logic for not skipping unsolvable games.
KPat uses a seed system (called “Numbered Deals”) to “shuffle” the cards before a game. The seed can be generated (pseudo-)randomly, which is the default, or entered manually. In theory, a manually-entered seed could be unsolvable, and there would then need to be completely different logic flow for random and manual seeds after the shuffle and deal.
It’s way simpler to just generate a new game seed randomly as necessary and then have the rest of the program be clueless as to whether it was typed in or not.







All forms of ampersand are based on “Et”, Latin for “and”, so cheat and use the backwards 3 (for E) forms.
The simplest puts a vertical bar through the backwards 3 like a relative of the dollar sign, and the other adds a t to it so that the middle point and the bottom line of the backwards 3 join up with the crossbar and base of the t. Bonus points for drawing that latter one without lifting your pen, but you’re doing well if you still have to extend the t’s crossbar after the fact.
Or really cheat and use the plus sign. That’s just the t from “Et”, but in the right context, most people instinctively understand it + will know what you mean.