FreeCell
From Wikipedia, the free encyclopedia
FreeCell is a solitaire card game superficially similar to Klondike. However, it is thought of as a game of skill, not luck. Although implementations vary, nearly all hands in common software versions of FreeCell are winnable, though some may be very difficult. This is in contrast to Klondike and other solitaire games where many hands are unwinnable even if the player's moves are flawless.
[edit] Rules
- Shuffle, then deal the 52 cards face up in 8 columns with each card visible but only the end card of each column fully exposed. Four columns will have 7 cards, the others only 6.
- Apart from the columns, there are four single card free cells and four suit piles (foundations). The objective is to get all the cards into the foundations.
- Single exposed cards may be moved:
- Column to column, placing the card in an empty column or on a card of the next rank and different colour suit (e.g. placing a red 3 on a black 4). Aces are low.
- Column to free cell, placing an exposed card in an empty cell.
- Free cell to column, as column to column.
- Column to suit home pile. Next card in order, starting with the Ace, ending with the King. Each suit is completely independent.
- Free cell to suit home pile. As column to suit home pile.
The terms in italics are defined in solitaire terminology.
[edit] 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. This variant is now called Baker's Game.
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 for the PLATO educational computer system in 1978. Paul managed to display easily recognisable graphical images of playing cards on the 512×512 monochrome display on the PLATO systems.
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. [1]
The game gained worldwide popularity thanks to Jim Horne, who learned the game from the PLATO system and implemented a version of the game with color graphics for Windows. It was first included with Microsoft Win32s as a test program, but was made a part of Windows 95 and has been included with every version of Windows since.
Today, there are many other FreeCell implementations for every modern system, some of them as part of solitaire suites. However, it is estimated that as of 2003, the Microsoft version remains the most popular, despite the fact that it is very limited in player assistance features, such as retraction of moves.
[edit] Strategies
- The basic strategy is to use the four free cells as temporary locations for cards: Never (or seldom) move cards to a free cell without having a plan to move it away from it again.
- A sequence of several cards with alternating colors can be moved at once by moving cards to vacant free cells and/or temporarily placing them in empty columns. If the move involves temporarily placing a card in an empty column it is called a supermove in FreeCell terminology.
- Empty free cells and/or empty columns can also be used to sort cards in a column into the correct order. For example if one have the cards 10♦, 7♦, 6♣, 8♦, and 9♣ in a column and four empty free cells, one can move 7♦, 6♣, 8♦, and 9♣ to the free cells, and then back onto the 10♦ in the correct order.
- Cards can be safely moved to the foundations without a chance of being further used, if the value of the foundations of the different color are greater than the card face value minus 2, and the value of the other foundation of the same color is greater than the card face value minus 3.
[edit] Difficulty
Like Minesweeper, FreeCell is a provably hard (NP-complete) game. This result was proved in 2000 and first published in 2001.[1] The result implies that writing a computer algorithm that finds solutions for arbitrary FreeCell configurations quickly would be a major scientific breakthrough. A perfect FreeCell playing program running in polynomial time would earn the discoverer a $1,000,000 prize for solving one of the Clay Mathematics Institute's Millennium Prize problems. However, most researchers believe that no such efficient solution procedure exists.
[edit] 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. This solver was later enhanced by Wilson Callan and Adrian Ettlinger and was incorporated into their Freecell Pro software.
Another known solver is Patsolve of Tom Holroyd. Patsolve uses atomic moves, and since version 3.0 incorporated a weighting function based on the results of a genetic algorithm that made it much faster.
Shlomi Fish started his own solver starting of March 2000. This solver was simply dubbed Freecell Solver. This solver is unique because it can use meta-moves, groups of moves that aim to achieve a certain end.
Gary Campbell wrote a solver for FreeCell for DOS in x86 assembly. This solver weighs in at 12 kilobytes, and is quite fast. It gives short (generally well under 100 steps), quick solutions to the first million FreeCell games (using the standard game numbering scheme). For more information, or to download this solver, follow one of the preceding links. In addition to giving correct solutions to the first million games, it accepts the entire 8-billion standard game numbers plus 3 "bonus" games numbered -1, -2, and -3.
The most comprehensive list of solvers known contains links to other solvers. New solvers are constantly being written as part of assignments or projects for some university courses.
[edit] The Internet FreeCell Project
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, took on the problem to try 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 multiprocessing, where the processors were human brains, 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.
(1) Dave Ring's original list of hard deals from the Internet FreeCell Project (solutions to all of these are in the catalog): 169, 178, 258, 454, 617, 718, 1689, 1941, 2021, 2350, 2577, 2607, 2670, 2772, 3285, 3342, 3349, 3685, 3772, 3788, 3801, 3973, 4257, 4368, 4540, 4591, 4714, 4946, 5179, 5374, 5453, 5482, 5490, 5548, 5557, 6343, 6673, 6745, 6751, 6768, 7107, 7160, 7600, 7700, 8005, 8323, 8534, 8591, 8652, 8678, 8749, 8820, 9250, 9385, 9538, 9617, 9700, 10589, 11281, 11386, 11409, 11430, 11677, 11854, 12211, 12313, 13015, 14051, 14188, 14676, 14795, 14879, 14965, 14977, 15023, 15099, 15130, 15133, 15164, 15227, 15238, 15710, 15746, 15905, 15939, 16191, 16575, 16576, 17277, 17524, 17764, 17768, 18623, 18992, 19410, 19484, 19633, 19763, 19861, 20055, 20251, 20589, 20715, 20912, 21051, 21185, 21278, 21785, 21896, 21899, 22332, 24063, 24457, 24549, 24735, 25123, 25155, 25450, 25599, 25602, 25790, 25856, 25995, 26093, 26183, 26197, 26369, 26421, 26576, 26693, 26694, 26710, 27188, 29001, 29154, 29198, 29345, 29704, 30000, 30108, 30394, 30615, 30712, 30801, 31044, 31266, 31465, 31601, 31647, 31729, 31918, 31945.
[edit] Windows versions
While there are actually 52!/8!(!=factorial), or approximately 2.00×1063, possible games, some games may be similar to others because suits assigned to cards are arbitrary. When a card is black, for example, it may be assigned to clubs or spades.
The original Microsoft package includes 32,000, generated by a 15-bit random number seed. These games are known as the "Microsoft 32,000". Later versions of Microsoft FreeCell include more games, of which the original 32,000 are a subset.
The original Help file remains through modern Microsoft versions: "It is believed (although not proven) that every game is winnable." This was known at the time to be untrue in its strictest sense. 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. Nevertheless it started a flurry of interest in the question of whether all of the Microsoft 32,000 could be beaten. Smart players could win most games most of the time, but that wasn’t proof either way.
In later implementations of FreeCell in Microsoft Windows, there are 1,000,000 games. Of these, 8 have been found to be unsolvable. They are games No. 11,982, No. 146,692, No. 186,216, No. 455,889, No. 495,505, No. 512,118, No. 517,776, and No. 781,948.
One way to "win" at any Microsoft FreeCell game was added as a way to help the original software testers; one must push the following key combination of Ctrl-Shift-F10 at any time during the game. When the dialog box appears on screen click 'Abort' to win, 'Retry' to lose, or 'Ignore' to cancel and continue playing the game as originally intended. Double-click any card for the results. However, this does not actually provide a correct solution to the game.
[edit] References
- ^ Malte Helmert, Complexity results for standard benchmark domains in planning, Artificial Intelligence Journal 143(2):219-262, 2003.
[edit] External links
- FreeCell FAQ
- Freecell.com online competitive Freecell which replicates much of Paul Alfille's original PLATO Freecell environment
- Freecell Solitaire rules and strategy tips
- Play Freecell
- FreeCell C#.NET- Screenshot