Jump to content
Science Forums

Recommended Posts

Posted

You have all played M$ solitaire, and probably got bored with it as I did--very quickly. Now, FreeCell is a much more challenging game. Most folks have to play at least a dozen games before they finally get their very first win.

 

However, once you get the hang of it, you can win a LOT more often than at solitaire. My brother told me there was a "proof" that all FreeCell games could be won, if you knew the right strategy. I admit that I have gotten rather good at FreeCell, typically winning 90% or more of the games on first try, and often getting win streaks of 40 or more without any loss.

 

Here is a list of the hardest FreeCell games I found. The game number can be typed into FreeCell and you get to play the same game. The "!" indicate how many straight loses I suffered on that game before I won. If there is an "X" at the end, then (so far) I have NOT won that game, ever. Here goes:

 

7303 !!!!! !!!!! !!!!! !

7305 !!!!

7354 !!!!! !!!!!

7585 !!!

8618 !!!!!

8652 !!!!!

8950 !!!!

9121 !!!!

10103 !!

10394 !!!!

10692 !!!!! X

11193 !!!!! !

11593 !!!

11601 !!!

11894 !!!!! X

13182 !

13321 !!!

14046 !!!!!

14767 !!!!

15331 !!!

15589 !!

15897 !!!!! !

16186 !!!!

16349 !!!!! !!!!!

16736 !

17655 !!!!

19633 !!!!!

20703 !!!

21587 !!

22163 !!!

22447 !!!

22756 !!!!! !!!!

23990 !!!!! !!!!

27005 !!

27111 !!!!!

24639 !!

25644 !! X

28258 !! X

29001 !!!!

29557 !!!!! !

29826 !!

30242 !!!!!

30506 !!!!! !!

31243 !! X

31918 !!!!! !!!!! X

Posted

Haha... scratch 25644.

 

I know you've only tried it twice, but I cracked it first time [/brag]:shrug:

 

Seems there are 1,000,000 games on my machine to choose from - are we playing the same version?

 

Oh yes - I'm more of a Spider Solitaire kinda guy...:lol:

Posted

FreeCell is from the devil! :shrug: It is utterly addictive!

 

Fortunately the IT guys at my current workplace had the foresight to disable it on my computer, so I don't get tempted to play at work.

 

A few years ago, however, I had lots of time to kill in the job I had at the time. So I started playing the FreeCell games at number 1, and I could only progress to the following number once I had solved the previous one. I reached over 1 000 games (out of a potential 32 000) before I changed jobs.

Posted
Oh my god, how many games have you completed, pyro?!

Those numbers seem to show that one game followed the previous number... did you play 30,000?!!

I don't think so.

Normally, the games appear in random order, so I might play game 1893 and then game 29902. I never made any attempt to play the games sequentially, though, that is a thought. Hmmm.

 

No, I just started a diary of tough games about a year ago. I was inspired to post this thread when I came upon game 31918. After ten tries I couldn't even get a third Ace off the board!! There didn't seem to be any winning path.

 

Since then, I HAVE beaten 31918, after 22 tries!!! And I cannot seem to repeat the win!!!

  • 4 weeks later...
Posted
My brother told me there was a "proof" that all FreeCell games could be won, if you knew the right strategy.

 

Tell him to try 11982 then. AFAIK it is regarded as unsolvable. OTOH, I know for a fact that 617 is solvable but it did take me 3 tries.....

Posted
Eat your hearts out!

 

Impressive.

 

I am superstitious with Freecell. I never hit the new game button. I always hit the select game, and then accept whatever random game is listed. And I always look at the stats before closing the game. And I must close the game after looking at the stats before I play another game.

 

Bill

Posted
I am interested to know how it is certain that every game is solvable, could it be proved mathematically?
It could be proven exhaustively – that is, permute all possible move sequences to find the shortest solution for any given board (game #). Such a program doesn’t seem to challenging, however, computationally, there are far too many possible games for an exhaustive proof.

 

A question I have is how starting boards are generated from game #s. There are far fewer game #s than possible boards: 32,000 or 1,000,000, depending on version, vs 52!/4 = 20,164,543,792,735,969,642,915,159,214,100,941,743,822,376,360,220,819,456,000,000,000,000. Does anyone know this algorithm - or if it is an algorithm, vs. a table?

Posted
I am interested to know how it is certain that every game is solvable, could it be proved mathematically?

 

Dave Ring formed the Internet Freecell Project in the 1990's to answer this question. Human solvers worked collaboratively to show that all of the original 32,000 games were solvable. Game 11,982 which was never solved by any of them. His project wrapped up in 1995. The current iteration has 1,000,000 games of which 8 have been found to be unsolvable. There are actually 52!/8! possible games but many are not dealt because of similarity to other deals. Freecell Pro has 8 billion+ deals along with several other features Freecellers might like....

Posted

I remember the claim that the original 32000 games were all solvable. And I guessed that they were generated backward to make sure that this was a true statement.

 

I spent 2 hours on 11982 last night after reading this thread for the first time. Nothing like the combination of "impossible" and "free cell" to qualify as a full fledged challenge.

 

Bill

Posted
There are far fewer game #s than possible boards: 32,000 or 1,000,000, depending on version, vs 52!/4 = 20,164,543,792,735,969,642,915,159,214,100,941,743,822,376,360,220,819,456,000,000,000,000.
In stating the number of possible starting freecel boards as 52!/4, I’m accounting only for the interchangability of the 2 red and 2 black card suites. I’ve failed to account for the interchangability of the 8 columns of cards
There are actually 52!/8! possible games but many are not dealt because of similarity to other deals.
52!/8! =2000450773088885877273329287113188665061743686529843200000000000 =~ 2.0e63, or 52!/(8!4) = 500112693272221469318332321778297166265435921632460800000000000 =~ 5.0e62, which accounts for the the interchangeable suites, is the number given by most sources. However, I don’t think it’s correct, either.

 

The initial board has 4 columns of 7 cards, and 4 of 6. Only columns with like numbers of cards can be significantly exchanged. So the number I calculate is 52!/(4!4!4) = 35007888529055502852283262524480801638580514514272256000000000000 =~ 3.5e64

 

I wonder which of these big numbers – 52!/(8!4) or 52!/(4!4!4) – is correct?

Posted

Preparing to try a few of the questions in this thread, I wrote a text based MUMPS implementation of the Freecell game. While I’m a Freecell newb/slouch, winning about 50% on the windows version, and while the text based version may be causing me to play worse than normal, the impression I get from playing several purely random starting boards is that the majority of possible freecell starting boards either can’t be won, or are very hard. After a dozen games, I haven’t won one yet.

 

In the spirit of showing source code, even if, as it appears, I’m the only person on this site who uses MUMPS, here it is:

n (XFRECEL, f  s F="" x XFRECEL(2) r "Move card: ",R q:R=""  s F=$tr($e(R,1,3),"uns","UNS"),T=$e(R,4,6) x:T=""&$d(B(1,F)) XFRECEL(2) r:T=""&F " onto: ",T w ! x XFRECEL($s(F="U":4,F="N":5.1,F?1"N":5,F="S":6,F:3,1:7)) ;XFRECEL:Freecell game
n (XFRECEL,B) x XFRECEL(1,1),XFRECEL(1,2),XFRECEL(1,3),XFRECEL(1,4) ;XFRECEL(1): setup game B() from B
n (D) s D="" f I=101:1:113,201:1:213,301:1:313,401:1:413 s D=D_","_I ;XFRECEL(1,1)
n (M,B,C) s C=1,A=B,M=1 f I=2:1:52 d D^HPM(.A,.R,A,I) s C=R+1_","_C ;XFRECEL(1,2)
n (M,B,C,D,E) s $e(D)="",E="" f I=1:1:52 s R=$p(C,",",I),$p(E,",",I)=$p(D,",",R),$p(D,",",R,R+1)=$p(D,",",R+1) ;XFRECEL(1,3)
n (B,E) s A=B k B s B=A,B(2)=0 f I=1:1:52 s K=$p(E,",",I),Y=I-18+1,X=I-1#8+1,B(0,1,X,Y)=K,B(1,K)="1,"_X_","_Y ;XFRECEL(1,4)
n (XFRECEL,B,F) s F=$g(F) w "Board: ",$g(B,"not defined"),! i $d(B) x XFRECEL(2,1),XFRECEL(2,2),XFRECEL(2,3) w ! ;XFRECEL(2): display board B
f X=1:1:4,0,5:1:8 s Y=$o(B(0,0,X,""),-1),K=$s(Y]"":B(0,0,X,Y),'X:"",X<5:"f",1:"h") w $j($s(K="":K,K=F:"*",1:"")_K,4) ;XFRECEL(2,1)
w !," " f X=1:1:8 w $j(X,4) ;XFRECEL(2,2)
s E=1 f Y=1:1 q:'E  f X=1:1:8 s E=$d(B(0,1,X,Y)) i E w !,"  " f X=1:1:8 s K=$g(B(0,1,X,Y)) w $j($s(K="":K,K=F:"*",1:"")_K,4) ;XFRECEL(2,3)
n (XFRECEL,B,F,T) x XFRECEL(3,1) i  x XFRECEL(3,2) i  x XFRECEL(3,3) i  x XFRECEL(3,4) ;XFRECEL(3): move board B by move F,T
i F]"" s A=$g(B(1,F)) i A]"" s FA=+A,FX=$p(A,",",2),FY=$p(A,",",3) i '$o(B(0,FA,FX,FY)) ;XFRECEL(3,1)
i T]"" x XFRECEL(3,2,1) e  x XFRECEL(3,2,2) e  x XFRECEL(3,2,3) e  x XFRECEL(3,2,4) ;XFRECEL(3,2)
i $tr(T,"f","F")="F" f TX=1:1:4 i '$d(B(0,0,TX)) s TA=0,TY=0,T="" q  ;XFRECEL(3,2,1): free cell
i $tr(T,"h","H")="H" s TX=$e(F)+4,TY=$o(B(0,0,TX,""),-1),T=$s(TY:B(0,0,TX,TY),1:$e(F)_"00") i T+1=F s TA=0 q  ;XFRECEL(3,2,2): home cell
i T?1n,T>0,T<9 s TA=1,TX=T,TY=0,T=$e(F)#2+1 i '$d(B(0,1,TX)) ;XFRECEL(3,2,3): empty column
s A=$g(B(1,T)) i A]"" s TA=+A,TX=$p(A,",",2),TY=$p(A,",",3) i $s(TA:'$o(B(1,TX,TY+1)),1:TX>4) ;XFRECEL(3,2,4): onto card
x XFRECEL(3,3,1) e  x XFRECEL(3,3,2) e  x XFRECEL(3,3,3) ;XFRECEL(3,3): valid move
i 'TA,TX<5,T="" ;XFRECEL(3,3,1): free cell
i 'TA,TX>4,T+1=F ;XFRECEL(3,3,2): home cell
i $e(F)-$e(T)#2,$e(F,2,3)+1=+$e(T,2,3)!'$e(T,2,3) ;XFRECEL(3,3,3): on column
k B(0,FA,FX,FY) s TY=TY+1,B(0,TA,TX,TY)=F,B(1,F)=TA_","_TX_","_TY,B(2)=B(2)+1,B(2,B(2))=FA_","_FX_","_FY_","_B(1,F)_","_F_$s($e(T,2,3):T,TX<5:"f",1:"h") ;XFRECEL(3,4): make move
n (XFRECEL,B) i B(2) s A=B(2,B(2)) k B(2,B(2)) s B(2)=B(2)-1,(F,B(0,$p(A,","),$p(A,",",2),$p(A,",",3)))=B(0,$p(A,",",4),$p(A,",",5),$p(A,",",6)),B(1,F)=$p(A,",",1,3) k B(0,$p(A,",",4),$p(A,",",5),$p(A,",",6)) ;XFRECEL(4): undo last move
n (XFRECEL,B,F) s $e(F)="" i F?1.68n d S^HPM(.A,"80658175170943878571660636856403766975289505440883277823999999999999",F) i A]"" s B=F x XFRECEL(1) i 1 ;XFRECEL(5)
n (XFRECEL,B) f  x XFRECEL(5.1,1),XFRECEL(5) i  q ;XFRECEL(5.1):random board
s F="n" f I=1:1:68 s F=F_$r(10) s:$e(F)="0" $e(F)="" ;XFRECEL(5.1,1)
n (XFRECEL,B) x XFRECEL(6,1) w ! ;XFRECEL(6): show history
f I=1:1:$g(B(2)) w I,".",$p(B(2,I),",",7)," " ;XFRECEL(6,1)
n (XFRECEL,B) f I=1:1:$o(XFRECEL(7,""),-1) s J=$g(XFRECEL(7,I)) w $P(J,";",1,$l(J,";")-1),! ;XFRECEL(7): documentation
Plays the standard 8x4 Freecell solitaire card game. ;XFRECEL(7,1)
Enter: N for a new random board; N followed by a number from 0 to ;XFRECEL(7,2)
80658175170943878571660636856403766975289505440883277823999999999999 for a; ;XFRECEL(7,3)
specific board; a card ID (eg: 307) followed by a target card or place ;XFRECEL(7,4)
(eg: 208, 1, f, or h) to move a card; U to undo last move; S to list move ;XFRECEL(7,5)
history; Nothing (Enter) to quit. ;XFRECEL(7,6)

Its only improvements on the usual Windows implementation are unlimited undos, a move record, and the aforementioned ability to start with any possible board. It’s only bells and whistles are self-documention (I can rarely remember how to use little apps like this just a couple of days after I’ve written them), and a feature to location a card of interest on demand with a “*”.

Posted

From your last statement, I am more convinced that the boards in the windows version were originally generated by dealing them out backward from the winning position. The fact that a very small number of those games may be unbeatable could be because of a flaw in the logic of that program that creates situations where there is no symetry between unplay and play.

 

Bill

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...