Replies: 5 comments 1 reply
-
That's so cool! Microsoft Solitaire Collection is actually something I wanted to test but have no ideas how to extract the cards. Also, I plan to have some GUI for setting up and "analyzing" games with real-time solvability, or solvability probability in random (no undo) setting. Currently, I intend to implement it as an web app with webassembly. But it's also like a learning project for web stuff, so the progress would be slow. Anyways, if you have any suggestions on what might be interesting to explore, feel free to tell me. |
Beta Was this translation helpful? Give feedback.
-
The animation is neat! How do you make that? I also want to have a better tool to visualize my game output :) |
Beta Was this translation helpful? Give feedback.
-
I made an app that takes the output of my solver and then renders it using Raylib. It's still buggy so I haven't put the code anywhere yet. |
Beta Was this translation helpful? Give feedback.
-
I just push the new code for Microsoft Solitaire Collection seed :) hopefully it works well |
Beta Was this translation helpful? Give feedback.
-
Been messing around with your solver and mine, and remembered that the Microsoft Solitaire Collection has seeds similar to your exact seed. It never occurred to me at the time when I originally looked at MS Solitaire (couple years ago) how they used the seeds to generate deals, but now that I see what you did with the 'exact' format I tried to decipher theirs and succeeded.
The decoding process is in an opposite fashion from how you do it.
Decoding Detailed:
The starting deck configuration is AS,2S,..KS, AH,...,KH, AC,...,KC, AD,...,KD, instead of AH,AD,AC,AS,.....,KH,KD,KC,KS.
Then from 52,51,...,3,2 instead of 2,3,...,51,52, I divide the number and swap the deck based on the remainder. ie) divide by 52 giving 10 remainder, swap index 51 and 10.
After all the swapping, since their deck is also arranged with the stock first and then the tableau, I move the stock to the end.
I then reverse the tableau cards so it starts with leftmost pile card. Then since the tableau is also arranged by levels instead of by pile. ie) Card 1,2,3,4,5,6,7 of the tableau is the very top card in each pile (card 1 being the first visible card the rest hidden), then 8,9,10,11,12,13 (card 8 being the visible card for pile 2, the rest hidden). I rearrange them to be by pile as well.
As an actual example here is a seed from microsoft
37529377358585594134454298882350599254635682470701937210952436445911
and the same representation in your 'exact' format
6555618124709432518914756628087920429793617258659043425228908599455
Thought you might want to add theirs as well. And if you want to know how to obtain the seeds used you can find them in the games log files located
C:\Users<USER_NAME>\AppData\Local\Packages\Microsoft.MicrosoftSolitaireCollection_8wekyb3d8bbwe\LocalState\logs\solitaire.log
You'll find them on lines starting with
SolitaireGameLogic::TryLoadGame
or
SolvableDeckAppComponent
Here is also something Ive been working on to visualize the full minimal solution, this is for that same seed.
Beta Was this translation helpful? Give feedback.
All reactions