Ergo, you are playing an assortment of selected shuffles residing in a database (the selected ones having a reasonably large number of moves possible until you have reached a "sticking point.". Get a real deck of cards and try it! I will guarantee you that such unplayable shuffles NEVER, EVER happen in this solitaire game. Fact is that in a real game, a percentage of shuffles result in not a single play being possible. It is 100% certain that there is no shuffling in Windows Klondike solitaire. I put some statistics and the source code here if it interests you: It uses STL and I wasn't trying to make it fast, just thorough.Īll of these results will be rendered moot when someone finds a bug in my program. I'm using STL mersenne_twister and a real hardware generator will eventually be needed. There's also the business of random number generation for dealing decks. The task is still monumental and will require lots of computing time to build up a decent statistical set. I'm going to try running on a computer with more power and multi-thread the whole thing. The real problem is, when a deal isn't solvable, it's taking the program hours and millions of tries to figure that out. This is very small statistical set mind you. I have a very small sample set but it tentatively appears that about 50% of lost hands are solvable. This past weekend, I modified the program to try and solve deals. The statistical set was millions of games played. The results are about one win in 5.4 games played. My version has infinite number of go rounds on the play stack (no limit of three re-deals). I put together a C++ program to try and figure out what the odds are. See code repository on GitHub for full details. My own manual play on the MS Windows 7 solitaire wins over 8% (N = 3365), so it seems clear that there's still room for improvement. Success of course varies greatly by rule parameters selected: for my preferred draw-3, pass-3 game it wins about 7.6% of the games (based on N = 100,000 games played margin of error 0.3% at 95% confidence). I'll still conjecture that it's got to be under 50%.Įdit: Circa 2012 I wrote a lightweight Solitaire-solving program in Java. So currently we're completely in the dark about what the success rate of the best (non-omniscient) player would be in regular Solitaire. If they're careful the researchers correctly call this an "upper bound on the solution rate of regular Solitaire" (and my intuition tells me that it's a very distant bound) if they're really, really sloppy then they use the phrases "odds of winning" and "percent solvable" interchangeably (when they're not remotely the same thing). But this meaning of "solvable" is only a hypothetical solution rate for an all-knowing player that is, there are many moves during a regular game of Solitaire that lead to dead-ends, that can only be avoided by sheer luck, for the non-omniscient player. Secondly, they use the results from this "Thoughtful Solitaire" (full information, recall claiming 82% to 91% success rate) simultaneously for the percentage of regular Solitaire games that are "solvable". First, the "solvers" that I see are all based on the variant game of "Thoughtful Solitaire", apparently preferred by mathematicians because it gives you full information (i.e., known location of all cards), and are therefore encouraged to spend hours of time considering just a few moves at a time (gads, save me from these frickin' mathematicians like that! Deal with real-world incomplete information, for god's sake!). The other thing is that all of the work done on the problem apparently uses some astoundingly variant definitions for the game. Apparently this an actually outstanding research problem Professor Yan at MIT wrote that this is in fact “one of the embarrassments of applied mathematics” in 2005. I'm also entertaining the idea of building a robot solver, improving its play, and seeing what fraction of games it can win. So this brings up the question: What percentage of games should you be able to win? Obviously I don't know, but my intuition says around ~20% or so maximum. ( Is it fun? No, I feel a vague sense of irritation the whole time I'm playing, until I actually win and can finally close the application. I have to be careful, because I get in a habit of quickly hitting "deal" instantly after a loss (my "hit", if you will), and after an extended time by hand starts to go numb and I start making terrible mistakes because my eyesight starts getting all wonky. However, just today I probably lost 30+ games in a row over maybe 2 hours. Most games are lost, but I can usually eke out a win in about 20-30 minutes of playing. Occasionally I go on these benders and play it quite a bit for a few days. Of course, it's the most widely-played computer game of all time. Okay, I admit it: Sometimes I play Microsoft Solitaire (i.e., "Klondike" Solitaire: draw 3, with 3 re-deals, Vegas scoring).
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |