'
cellmate's Webpages
|
Visit freecell.net
Home page
|
deck | standard collection of 52 playing cards, ace thru king, 4 suits |
game number | There are 32768 game numbers 0 thru 32767 |
shuffle | (shuffled deck) game number is used as seed to a pseudo-random number generator which is used to select cards from a deck with some adjustment controlled by level |
level |
level is used to adjust the shuffle slightly so that on average lower level shuffles are easier to win level is also referred to as difficuly level. And climate The concept is that making low cards playable sooner makes the game easier. This appears to hold true but is not the only factor that affects a games difficulty so is not a guarentee Level 10 is an unadjusted shuffle Lower levels (easier) are achieved by adding more high cards early in the shuffle. The lower the level, the more high cards added. This results in more low cards being available for play sooner. Higher levels (harder) does the reverse. More low cards are added early in the shuffle. This results in low cards being buried. eg an 8x4 level 6 game should be easier to win than the same 8x4 level 10 game There is no attempt to ensure consistency for a level. A shuffle might already be 'easy'. Level adjustment may make it even easier. |
layout | (tableau) Columns x Freecells, the standard freecell layout being 8x4 |
deal | is dealing cards from a shuffle to a layout |
variant | is a grouping shuffles with the same level being dealt to the same layout eg 8x4-6 represents level 6 shuffles dealt to an 8x4 layout 9x3-6 is the same shuffles but dealt to a 9x3 layout |
n-sum | is a grouping of layouts by the sum of columns and freecells eg 8x4 is a 12-sum |
Over the years attempts have been made to identify the unwinnable games
Players organized to attempt to solve, or confirm unwinnable, all unwon deals. The more difficult games were escalated to the more skilled players.
Shuffles vary by game number and level. The same shuffles are used for all layouts
levels | shuffles | |
---|---|---|
per level | 1 | 32768 |
levels 1 thru 4 | 4 | 131072 |
levels 5 thru 10 - streak play | 6 | 196608 |
levels 1 thru 10 | 10 | 327680 |
levels 1 thru 12 - custom play | 12 | 393216 |
levels 1 thru 14 - solver | 14 | 458752 |
Layouts range from 4 thru 13 columns and varying number of freecells 0 thru 10 depending on number of columns.
The number of freecells does not effect the deal.
|
|
The number of variants per layout changes depending on how many levels you include
Each streak play layout includes levels 5 thru 10 so every layout has 6 variants
|
|
FC-SOLVE is well known as a freecell game solver (which can also solve many other solitaire games)
fc-solve binaries are available to run on your windows or linux machine but these are limited to 10 columns and ?? freecells. The source code and build scripts are also available. It was necessary to rebuild fc-solve from source to increase the limits to get a fc-solve that can attempt to solve all of the NetCELL layouts.
A script was required to automate the running of fc-solve against a full set of games covering
6 fc-solve methods were run against the full set of games
The first pass was run with -mi 6000000. Most games were solved (or unsolved) within a couple of seconds. For those that exceeded the limit (less than 1%) it was around 30 seconds
Patsolve took about 2.5 weeks to complete. Each of the others closer to 4 weeks
Method | Solved | Unsolved | Exceeded |
---|---|---|---|
a-star | 28206023 | 7972587 | 62798 |
dfs | 28222048 | 7972587 | 46773 |
patsolve | 28222202 | 8019178 | 28 |
random-dfs | 28204934 | 7972587 | 63887 |
random-dfs-cn | 28263483 | 7895175 | 82750 |
random-dfs-lg | 28256467 | 7970438 | 14503 |
A second pass of the games that exceeded the limit were rerun with -mi 12000000. About 75% of those finished within the limit.
Each method took another 2-4 weeks
Method | Solved | Unsolved | Exceeded |
---|---|---|---|
a-star replays | 18832 | 3183 | 40783 |
dfs replays | 13407 | 3183 | 30183 |
patsolve replays | 0 | 0 | 0 |
random-dfs replays | 18502 | 3183 | 42202 |
random-dfs-cn replays | 14683 | 13203 | 54864 |
random-dfs-lg replays | 1507 | 4648 | 8348 |
Method | Solved | Unsolved | Exceeded |
---|---|---|---|
combined | 28302847 | 7938561 | 0 |
Once the scripts were running it was just a great deal of patience ( and monitoring to deal with problems) waiting for the processing to complete.
I could have saved some time by not playing eg an 8x4 game if it had already been solved as 8x3, or if it had already been solved by a previous run, but i also collected a couple of other stats, eg moves and iterations, which required the full runs. I hoped it might give some indication of game difficulty but it became apparent quite quickly that this was not the case.
Anyway... just extra time. Also nice to see the differences where where some methods could solve a game whereas another could not but collectively a fuller set of solved games