# FreeCell

Jump to: navigation, search
Named Variants A Patience game A game of FreeCell on KDE Baker's Game Freecell Single 52-card See also Glossary of solitaire

FreeCell is a solitaire-based card game played with a 52-card standard deck. It is fundamentally different from most solitaire games in that very few hands are unsolvable.[citation needed] 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,[citation needed] but it is easy to construct examples that cannot be solved. Various computer versions of Freecell occasionally deal unsolvable games.

## 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 1920s."[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, distinct 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 distinct 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 the GPL license), first integrated Don Woods' solver,[2] and later on also added 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]

## References

1. ^ Gardner, Martin (June 1968). "Mathematical Games". Scientific American 218 (6): p. 114.
2. ^ a b c 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 (March 2003). "Complexity results for standard benchmark domains in planning". Artificial Intelligence 143 (2): pp. 219–262. doi:10.1016/S0004-3702(02)00364-8.
6. ^ Fish, Shlomi. "Don Woods' Freecell Solver". Fc-solve.shlomifish.org. 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.
8. ^ Fish, Shlomi (June 6, 2000). "Freecell Solver 0.4 was released". Fc-solve.shlomifish.org. 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.
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.
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.