Jump to content

FreeCell

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 50.131.220.134 (talk) at 21:27, 14 July 2012 (Undid revision 502295890 by Koko64 (talk)). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

FreeCell
Named variantsBaker's Game
FamilyFreecell

FreeCell is a solitaire-based card game played with a 52-card standard deck. It is fundamentally different from most solitaire games in that nearly all deals can be solved. Although software implementations vary, most versions label the hands with a number (derived from the random number seed used to generate the hand).

A version of FreeCell was created by Microsoft for release with the Windows operating system.

Rules

Construction and layout:

  • One standard 52-card deck is used.
  • There are four open cells and four open foundations. Some alternate rules use between one to ten cells.
  • Cards are dealt into eight cascades, four of which comprise seven cards and four of which comprise six. Some alternate rules will use between four to ten cascades.

Building during play:

  • The top card of each cascade begins a tableau.
  • Tableaux must be built down by alternating colors.
  • Foundations are built up by suit.

Moves:

  • Any cell card or top card of any cascade may be moved to build on a tableau, or moved to an empty cell, an empty cascade, or its foundation.
  • Complete or partial tableaus may be moved to build on existing tableaus, or moved to empty cascades, by recursively placing and removing cards through intermediate locations. While computer implementations often show this motion, players using physical decks typically move the tableau at once.

Victory:

  • The game is won after all cards are moved to their foundation piles.

For games with the standard layout (four open cells and eight cascades) most games are easily solved.

History

One of the oldest ancestors of FreeCell is Eight Off. In the June 1968 edition of Scientific American, Martin Gardner described in his "Mathematical Games" column a game by C. L. Baker that is similar to FreeCell, except that cards on the tableau are built by suit rather than by alternate colors. Gardner wrote, "The game was taught to Baker by his father, who in turn learned it from an Englishman during the 1920's."[1] This variant is now called Baker's Game. FreeCell's origins may date back even further to 1945 and a Scandinavian game called Napoleon in St. Helena (not the game Napoleon at St. Helena, also known as Forty Thieves).[2]

Paul Alfille changed Baker's Game by making cards build according to alternate colors, thus creating FreeCell. He implemented the first computerised version of it in the TUTOR programming language for the PLATO educational computer system in 1978. Alfille was able to display easily recognizable graphical images of playing cards on the 512 × 512 monochrome display on the PLATO systems.[3]

This original FreeCell environment allowed games with 4–10 columns and 1–10 cells in addition to the standard 8 × 4 game. For each variant, the program stored a ranked list of the players with the longest winning streaks. There was also a tournament system that allowed people to compete to win difficult hand-picked deals. Paul Alfille describes this early FreeCell environment in more detail in an interview from 2000.[4]

Solving

Complexity

The FreeCell game has a constant number of cards. This implies that in constant time, a person or computer could list all of the possible moves from a given start configuration and discover a winning set of moves or, assuming the game cannot be solved, the lack thereof. To perform an interesting complexity analysis one must construct a generalized version of the FreeCell game with 4 × n cards. This generalized version of the game is NP-complete;[5] it is unlikely that any algorithm more efficient than a brute-force search exists that can find solutions for arbitrary generalized FreeCell configurations.

There are 52! (i.e., 52 factorial), or approximately 8×1067, unique deals. However, some games are effectively identical to others because suits assigned to cards are arbitrary or columns can be swapped. After taking these factors into account, there are approximately 1.75×1064 unique games.[2]

Solvers

One of the passions of several FreeCell enthusiasts was to construct computer programs that could automatically solve FreeCell. Don Woods wrote a solver for FreeCell and several similar games as early as 1997.[6]

Another known solver is Patsolve by Tom Holroyd. Patsolve uses atomic moves, and since version 3.0 has incorporated a weighting function based on the results of a genetic algorithm that make it much faster.[7]

Shlomi Fish started his own solver in 2000, written in C and distributed with source under the public domain (later relicensed under the MIT License).[8][9] This solver was simply dubbed Freecell Solver.

Gary Campbell wrote his FCELL solver for DOS in 8086 assembly language. This solver is 12 kilobytes, and is quite fast. FCELL was incorporated into the Faslo FreeCell AutoPlayer in 2007.[10]

Some of these solvers and others have been incorporated into larger FreeCell or Solitaire programs. FreeCell Pro, the enhanced Windows-based Solitaire implementation by Adrian Ettlinger and Wilson Callan (formerly freeware, later licensed under GPL), first integrated Don Woods' solver[2] and later on used Fish's Freecell Solver and Holroyd's Patsolve.[11] PySolFC has integrated Freecell Solver,[12] while KDE's KPatience solitaire suite had initially integrated Freecell Solver as well, but later switched to a heavily modified version of Patsolve.[13]

Impossible games

It is believed that game #11982 is the only unbeatable game out of the original 32,000 Windows FreeCell games. In the Windows XP version of FreeCell, with one million hands, there are 8 deals that were shown to be unsolvable.[2] Currently, no computer simulation has been able to solve #11982 while using only four free spaces.[14]

When Microsoft FreeCell became very popular during the 1990s it was not clear which of the 32,000 deals in the program were solvable. To clarify the situation, Dave Ring started The Internet FreeCell Project and took on the challenge of trying to solve all the deals using human solvers. Ring assigned 100 consecutive games chunks across volunteering human solvers and collected the games that they reported to be unsolvable, and assigned them to other people. This project used the power of crowdsourcing to quickly converge on the answer. The project was finished in October 1995, and only one game defied every human player's attempt: #11,982. This deal has also defied every attempt to solve it by several exhaustive-search software solvers, and is therefore assumed to be impossible.[2]

11,982 is inherently difficult due to the large number of aces and other small cards high in the stack, as well as the high cards being relatively evenly distributed among the stacks, requiring one to use many of the cells to get to any useful cards.

Out of the current Microsoft Windows games, there are eight that are unsolvable: the games numbered 11,982; 146,692; 186,216; 455,889; 495,505; 512,118; 517,776 and 781,948. Exhaustive search has shown that 5 free cells (rather than the standard four) are required for these games. Adrian Ettlinger, using Don Woods' solver, has used the same random hand generator as Microsoft Windows FreeCell to explore a further 10 million games. Of the 130 unsolvable games in the first 10 million, all of them require 5 free cells. Ryan L. Miller, with the help of others explored 100 million games, with a total of 1282 being unsolvable. This gives FreeCell a win rate of about 99.998718%.[2]

Easter eggs

File:FreeCell XP.png
FreeCell in Windows XP

In the earliest versions, games numbered -1 and -2 were included as a kind of easter egg to demonstrate that there were some possible card combinations that clearly could not be won. Following that, the cards are arranged in order of value, such as King, Queen, Jack, 10, 9 and 8 in the first four piles, and the remaining numbers in the other.

In versions before Windows Vista, if the user pushes the combination of Ctrl+Shift+F10 at any time during the game, the user will be presented with a tool used by the developers during testing.[15]

In the Windows Vista and Windows 7 versions, if the user hits 'Select Game' and types -3 or -4 in the dialog box, then, when the game loads, drags an ace to the suit home pile, the other cards will automatically follow onto the suit home pile, winning the game. Selecting -1 or -2 in the dialog box results in two highly ordered non-random but impossible hands.

References

  1. ^ Gardner, Martin (1968). "Mathematical Games". Scientific American. 218 (6): p. 114. {{cite journal}}: |page= has extra text (help); Unknown parameter |month= ignored (help)
  2. ^ a b c d e f Keller, Michael (November 1, 2010). "FreeCell -- Frequently Asked Questions (FAQ)". SolitaireLaboratory.com.
  3. ^ Kaye, Ellen (October 17, 2002). "One Down, 31,999 to Go: Surrendering to a Solitary Obsession". New York Times.
  4. ^ Cronin, Dennis (May 4, 2000). "Interview with Paul Alfille". Freecell.net. Retrieved March 4, 2011.
  5. ^ Helmert, Malte (2003). "Complexity results for standard benchmark domains in planning". Artificial Intelligence. 143 (2): pp. 219–262. doi:10.1016/S0004-3702(02)00364-8. {{cite journal}}: |page= has extra text (help); Unknown parameter |month= ignored (help)
  6. ^ Fish, Shlomi. "Don Woods' Freecell Solver". Fc-solve.berlios.de. Archived from the original on March 2, 2008.
  7. ^ Holroyd, Tom (February 15, 2001). "RE: hinting". Freecell Solver Discussion (Mailing list). Retrieved March 4, 2011. {{cite mailing list}}: Unknown parameter |mailinglist= ignored (|mailing-list= suggested) (help)
  8. ^ Fish, Shlomi (June 6, 2000). "Freecell Solver 0.4 was released". Fc-solve.berlios.de. Archived from the original on March 2, 2008.
  9. ^ Fish, Shlomi (March 19, 2009). "Fwd: RFC: Freecell Solver Licence "Change"". Linux Elitists (Mailing list). Retrieved March 4, 2011. {{cite mailing list}}: Unknown parameter |mailinglist= ignored (|mailing-list= suggested) (help)
  10. ^ Campbell, Gary D. "FFA: A World Class Freecell Player & Solver". Numin8r.us. Retrieved March 4, 2011.
  11. ^ Adrian, Ettlinger (December 8, 2001). "FC-Pro policy". Freecell Solver Discussion (Mailing list). Retrieved March 5, 2011. {{cite mailing list}}: Unknown parameter |mailinglist= ignored (|mailing-list= suggested) (help)
  12. ^ Fish, Shlomi. "Programs that use Freecell Solver". Fc-solve.berlios.de. Retrieved March 5, 2011.
  13. ^ Kulow, Stephan (November 6, 2006). "Horrible News!!". Coolo's Blog via KdeDevelopers.org. Retrieved March 5, 2011. {{cite web}}: Italic or bold markup not allowed in: |work= (help)
  14. ^ Loy, Jim (1999). "FreeCell". Jimloy.com. Retrieved March 4, 2011.
  15. ^ "Windows NT Easter Egg - Freecell". Retrieved 2010-08-09.

Additional sources