The Faslo FreeCell Autoplayer
and Workshop

1. How to Play FreeCell

2. Getting Started with FFA

3. Advanced FreeCell Play

4. Advanced FFA Features

5. The FreeCell Solver

Please Read our Copyright



FFA may be the next standard in FreeCell Platforms!
We hope you have fun with it!

FreeCell is that most perfect marriage between a solitare game and a computer game. What makes a perfect computer solitare game? It provides you with an endless series of puzzles that you can (almost) always solve. FreeCell games range in difficulty from those that beginners can solve on the first try, to those that experts can't solve on several tries. One game in many thousands is actually impossible.

That'll keep you guessing!


How to Play FreeCell

FreeCell can be played with a normal deck of 52 cards. But it is so much easier to let the computer handle the cards for you! It makes sure that your moves are legal, helps you make complex moves, and can even provide hints and complete solutions when you are having trouble. This Help file is always available by pressing the F1 key whenever you are in the Autoplayer.

The Layout

The entire deck of 52 cards is dealt into 8 columns so that you can see each card in the column. With no hidden cards, you are able to plan your complete strategy. But it sounds easier than it is!

Above the 8 columns are 4 free cells to the left and 4 home cells to the right. When a free cell is empty, a card may be played into it from any column.

Each home cell receives cards of a particular suit (Clubs, Diamonds, Hearts, and Spades). Aces are played into the home cells first, followed by twos, threes, and so forth up to the Kings.

The Objective

The objective is to get all 52 cards home. When all four home cells are topped with Kings, the game is over. You win!

It turns out that when all the cards are either by themselves (in a column or free cell), or are generally in order with lower cards on top of higher ones, a "flourish" will take place. This means that all the cards are suddenly automoved to the home cells.

So, you could say the objective of FreeCell is to unravel the cards that are out of sequence. This is done by finding and making opportunities to put cards into sequence. This involves a lot of moving from one column to another and (as little as possible) putting cards temporarily into the free cells.

Moves

There are two ways cards may move into the home cells. One is automatically: When an Ace is exposed in a column, it is automatically moved to a home cell. Now, if the two of that suit is exposed, it is also moved automatically. After this, a card is only moved automatically home if the next lower card of the same suit is home and both cards of the opposite color but one rank lower have already been moved home. A black four, for example, is not moved home automatically until both red threes have been moved home.

The second way to move a card home is manually. Cards are moved by selecting them with a first click, then moving the cursor to the target box or column and clicking again.

Cards may also be moved from one column to another. These moves require the cards to be in sequence, alternating red and black, and sequentially by rank. For example, a red six may be moved onto a black seven.

Now comes the tricky part — the reason why a computer is better than playing manually. After two or more cards have been put into sequence, a whole sequence can often be moved in a single step. This is sometimes called a supermove. The length of the sequence you can move is limited by the number of free cells and empty columns that are available. A move is only legal if it could be made one card at a time. Using the free cells and columns in the most efficient way possible, the Autoplayer will calculate the maximum number of cards and move them for you.

A neat feature of the Autoplayer is that when you click on cards in sequence, the possible target columns are labeled in red.

Strategy

There are two types of moves in FreeCell. Moves that you can immediately reverse, and moves that you can't. The Autoplayer realizes that you are only human, so it will let you take back one move, no matter what it is.

Every time you make an irreversible move, one more card is put into sequence. Each reversible move has the chance of wandering around in a circle. You can never lose a game by making a reversible move, but you may be no closer to solving it either. Each irreversible move takes a chance that you may have just sealed your doom. You may have gotten into an impossible position, but you may not know it for several moves.

The key is to make a plan before filling a free cell. How are you going to get that card back to a column or home?

It almost never hurts to move a card from a free cell home, or back to a column when a target presents itself.

Apart from getting cards home, there are two major objectives: Exposing a card that can be moved home (that means digging into a column), and extending the lengths of the longer sequences.

When some of the columns are quite long, other columns will become empty. Now, you need to get the sequences with the highest head cards (Kings are best) into the empty columns. It is always the case that when you target an empty column, you want to move the maximum possible number of cards. It is never a better strategy to move a single card or fewer than the maximum. Autoplayer always moves the maximum.

Other Links

The Wikipedia and other resources are present in this list of links. To learn all about FreeCell click here.

If you still have questions, the answers may be among these Frequently Asked Questions.

Back to the Table of Contents


Getting Started with FFA

FFA was designed to make FreeCell easy to play. Hopefully, after using it, you will agree.

Because FreeCell is played almost exclusively on computers, and most often on the "Wintel platform," each deal of the cards is called a Game with a standard number. You can play Game #1942 using the Autoplayer, and the same layout using the MicroSoft FreeCell Player. In fact, some of the game numbers have become famous for various reasons.

When the Autoplayer is first activated, it comes up with a layout that has no standard number. It is just for your curiosity (it can be solved in 44 moves). To select a game at random, press the F2 key. If you want a specific game, press F7. You don't have to remember these key numbers, they are on the display. At the top, F7 labels a dropdown menu option, and below the solution window, to the left, F2 labels a button option.

You can solve the default layout, or press New Game and solve a random game number. If you want to try a particular game, press F7. Now, the cards are dealt and the game begins.

Make your moves by selecting a card or column (click on it), and then move the cursor to a target (an empty free cell, an appropriate home cell, or another column). Legal targets are labeled in red, just to keep you informed. The cursor also changes as you go from a legal target to a non-target. When you have the cursor over the target, click again to complete the move.

Notice the solution window as you make your moves. You can step back and forth through your play by using the left and right arrow keys. The Backspace is not the same as the left arrow key! Try it and you'll see the difference. If you step to the left (backwards in your solution) more than once, and perform a new move, it counts as backing up and making a new attempt at a solution. But, if you step forward to the end of your current solution, you can make the next move and just continue your current attempt. A 1-move backup isn't counted as a new attempt, but each time you take back two or more moves it does count as an additional attempt.

The Autoplayer displays 30 steps of a solution per line. It can display up to 5 lines, or a maximum of 150 steps. A solution of fewer than 30 steps is excellent. Not many FreeCell games can even be solved in 30 steps, but virtually all of them can be solved in fewer than 60 steps. So, when you see your solutions running into the 3rd line, you know that you should be able to do better!

Back to the Table of Contents


Advanced FreeCell Play

FreeCell games come in all levels of difficulty. Some might take you days to solve. But, fortunately, these only come along once in several hundred games. Most games can be solved in just a few minutes.

The best way to get better at playing FreeCell is to strive to win a game on the first attempt. Each time you use the Backspace key more than once, it counts as an additional attempt.

An advanced FreeCell player might seldom or never use one of the Solver keys, but it's nice to know they are there! Occasionally, even the best of players wants to study a game or find a way out of difficulty. That's what those keys are for.

Most of the time advanced players want to win games based on their own play. This means avoiding impossible situations. One way to judge a sequence of moves is to come out of it with as much or more "freedom" than you began with. Freedom can be measured by the maximum move length.

The maximum length of a move is one more than the number of free cells times two for every empty column. If the move targets an empty column, don't count that column. For example, with one free cell and one empty column, you can move 4 cards from one column to another (assuming 4 cards in sequence, and a column topped with a card that matches the head card of the sequence).

Some games can only be won by reducing your freedom to a single card — that's no free cells and no empty columns. Sometimes it can't be helped. But, each plan that involves giving up a degree of freedom, stands a chance of entering the impossible zone.

The "impossible zone" is when a game becomes unsolvable. It is often the case that you can go 10 or 20 moves without realizing that you are in this zone. Once you have entered this zone, the only way to win the game is to backup and make another attempt at a point where the game is possible. As stated above, one game in many thousands is impossible from the outset.

Back to the Table of Contents


Advanced FFA Features

The Autoplayer provides you with a couple of move shortcuts. When you want to move a card to a free cell, you can just double click the card. If the card is already in a free cell and you want to move it home — again — a double click will do the job.

FreeCell players generally warn you when you are about to run out of moves, or when no legal moves remain. When a certain loss is less than 4 moves away, the Autoplayer displays the "You Lose!" message. This may sometimes surprise you!

Since one backspace doesn't count as another attempt, you can use this key to be sure you are still on the track of a solution (FFA will advise you whether the current game can still be solved or not). Then, you can hit the right arrow key and continue with your solution.

When you really get into trouble, you can use the Hint button (or F4). The action of this feature can be set using Options to give you a 0, 1, or 2 move hint. A 0-move hint is much like using the backspace key: You find out whether the game is solvable or impossible. For more about hints and full solutions, read the next section.

Statistics

The Statistics Panel should be self explanatory. If a record of your performance is important to you, and you feel we should have done things differently, please send us an email.

Back to the Table of Contents


The FreeCell Solver

The FCELL solver usually produces a solution that is two or three lines long. It was designed to produce a quick solution, not necessarily the best solution.

When you use the solver part way through a game, it doesn't look at how you got there, it only looks ahead, and it starts with what it considers the best first move. Without looking back at the previous move, it sometimes considers the best move to be the exact opposite of the previous move. Sometimes a more complex variation on this theme occurs. In both cases, you can press [Solve] and [Next] repeatedly and the solver may get into a loop, repeating the same layout over and over.

This behavior only occurs when you solve from a given position, step forward to accept its first move, and then press [Solve] again. If you accept the solver's entire solution from a given point, it doesn't repeat moves.

The Hint feature follows the same principle. It gives the first move or two of a valid solution, but recent moves are not considered, and sometimes this means that the next good move is not the first or even the second move displayed. Often, you can see that this is the case. When the Hint doesn't seem to help, and you can't figure out a good move, you may have to press Solve (F3) to get a full solution. Hopefully, this won't happen often!

Something else which doesn't happen often is a position the solver finds to be "intractable." When this occurs up to 30 seconds may elapse with no message. After this long pause, the message "Unsolved!" will be displayed. At this point, the chances are extremely good that the layout is impossible.

Back to the Table of Contents




Copyright (c) 2007-2009, SSReddi/GDCampbell

The Faslo FreeCell Autoplayer is copyrighted with all rights reserved for its authors. Permission is granted to end users to download this program for their own use. Please do not make copies for other users, instead refer them to this site for their own downloads.

There is no charge for a download, or the use of this program.

However, this software was not easy to create, why not take a minute to "tip" the authors? Simply drop a bill of any denomination into an envelope, and mail it to 321 Pueblo Court, Moab, UT 84532. Your feedback will be appreciated!




A FreeCell Workshop

What's a FreeCell Workshop?

A FreeCell Workshop is a space that contains the tools you need to investigate FreeCell games, either by specific layouts, a particular game number, ranges of games, or even lists of games.

Did you know that there are over 8 billion standard game numbers? At the time of this writing, only the first 100 million have been investigated by solvers. In fact, most FreeCell players only allow access to the first 4 billion games. To access the 2nd half of the full game space You need the FFA FreeCell Workshop!

The FCELL Solver can solve games at the rate of over 230 games / second. It takes FCELL 120 hours to investigate the first 100 million games, and it would take 9600 hours to investigate all 8 billion games. No wonder the range of games beyond the first 100 million has never been charted.

This FreeCell Workshop is intended to permit entry into this uncharted territory!




Let's assume you have downloaded and extracted the files that make up the FFA FreeCell Workshop. Within the FFA Folder are most of the tools you need to investiate standard FreeCell games by number, or specific FreeCell layouts.




By now you should have activated FFA and played a few FreeCell games with it. You may be familiar with all of its standard features, but have you clicked the "Run FCELL" button? Try it and take a look!

There are two other buttons that you might not have known about: F6 and F9. These plus "Run FCELL" are the major tools in the workshop. Other tools are the Windows Notepad text editor and a program described in Project #5 (below).

For purposes of all the projects we will assume that there are 3 text files in your FFA Folder and that you are familiar with how to view and edit them with Notepad. These files are in.txt, S.TXT, and a scratch file of your own making, tmp.txt. You also need to know how to transfer text from place to place using the Windows Clipboard.

If you are comfortable with all of this, the best way to get familiar with your workshop is with a few short projects.





Project #1

Activate FFA and click the [New] button (or press F2). This selects a random game in the first 32,000. If you press F7, [Return] you get a random game in the 1st 1,000,000. To get a game in the 1st 4 billion, you have to enter the game number after pressing F7. Later we'll see how to get a game whose number is in the 2nd 4 billion.

Now press [Solve] and F9. This copies the layout and the solution to the Clipboard in a special format. To see what it looks like, you need to Paste the Clipboard into a text file (or a text area). The closest text area is available in the [Run FCELL] window.

Click [Run FCELL], position the cursor in the lower area, and press Ctrl+V. This inserts the Clipboard text into the window. Better yet, open your tmp.txt file with Notepad and press Ctrl+V to insert the Clipboard into that file. Either way, you can view what was copied to the clipboard. You will find that you can do a few things in the Run FCELL text area, but for full editing capability you need Notepad working on a normal text file.

To wrap up this project, be sure that you have pasted the Clipboard into tmp.txt and closed the file. Close the Run FCELL window, and close the FFA Autoplayer. Now, double click tmp.txt to activate Notepad on it. Select all the text (press Ctrl+A) and press Ctrl+C to copy it to the Clipboard. Now, close the text file again. Next, double click FFA to activate it. You will see the startup layout. And, now for the final step. Press F6. This copies the Clipboard into the FFA Autoplayer.

You should now see the same layout and solution that you captured with F9 at the beginning of this project. Play with this for a while to see what you can learn.





Project #2

Activate FFA and click [New]. Now, play a few moves into the game until at least one Free Cell and one Home Cell are occupied.

With the layout on display in FFA, browse into your FFA Folder and double click the in.txt file. You will now see the most recent text sent from FFA into the FCELL solver. Study it for a bit.

Now, close that text file and double click on the S.TXT file. This will show you the most recent text sent back from FCELL to the FFA Autoplayer. Study it. Notice that it looks a lot like the text captured with the F9 function, but it lacks the parameter string inside the braces. There is at least one other subtle difference: S.TXT has fewer spaces on a partial solution line than the F9 Clipboard text.

In order to qualify as a valid F6 Clipboard input to FFA, both the parameter string and the extra spaces are necessary.

Again, play with this until you have gotten the Autoplayer to accept an F6 input that you have created yourself.





Project #3

Activate FFA and click [Run FCELL]. This presents you with two text areas and two buttons. The upper text area allows you to pass a command to the FCELL Solver. The lower text area shows you the contents of the S.TXT file produced by a given activation of FCELL. The buttons are self-explanatory. Kill FCELL is useful if you have given it a command that takes longer than expected, or longer than you want to wait. Clear simply erases the text in the output window.

Warning! When you read the following you'll see that one form of FCELL input is a range of games. You may have jumped ahead to try this already. If so, you may have input a range of games such as 1-50, hit [Return], and gotten nothing in the output window.

What happened? Read on.

There are basically 3 types of command you can give FCELL: (1) You can enter a game number into the input box (-3 through 8589934591), or (2) You can enter a range of games into the input box (nnn-mmm, i.e. a game number - a higher game number), or (3) You can enter the name of a text file into the input box. The 3rd input type is how FFA communicates with FCELL (using the in.txt file). FFA always sends FCELL a card layout to be solved, however there is a second type of file that FCELL can process. This is a list of specific game numbers, one game number per line of text in the file.

The answer to the above question. When FCELL is activated with a range of games or with a list of games (in a file), it reports its results in a terse format instead of showing the layout and solution as it does when given a game layout or a single game number as input.

The terse result for a range of games is a single dot (or period) for each 100 games solved. So, if you give FCELL fewer than 100 games to solve it doesn't output anything! However, if any of the games cannot be solved, FCELL outputs N:number (for a game = number that it deems Not solvable), or U:number (for a game = number that it gives up on, i.e. Unsolved).

The terse result for a list of games is (see below) S: for Solvable, U: for Unsolved, and N: for Not Solvable. There is a line of output for each line of input.

Now, for the project: Double click your tmp.txt file and edit it so that its contents are 10 lines with 01 on the 1st line, 02 on the 2nd line, and so on until it contains 10 on the 10th line. Exit Notepad, saving tmp.txt, activate FFA, and get into [Run FCELL]. Now, enter tmp.txt into the Input window and hit [Return].

A moment later you should see 10 lines of output below a copy of your command line. Each line contains S: (showing game Solved), a game number (the same number as read from tmp.txt), and a 2-digit number following a comma. This final number is the number of steps it took FCELL to solve that particular game.





Project #4

There are eight impossible FreeCell games in the first million. These games occur at random. The first is game # 11982. The next doesn't occur for another 134710 games. In this project, we'll investigate a range of 65000 games that contains 4 impossibles.

Start by activating FFA and clicking [Run FCELL]. Type 455555-520554 for the FCELL Input. About 5 minutes will elapse before you see anything in the Output window. Eventually, you see a bunch of dots with N:455889 amongst them. At one dot per 100 games there must be 650 dots altogether. There are also 3 other unsolved games that are indicated off of the right edge of the display.

The next step is to get the list of unsolved games into the tmp.txt file. To do this, browse into the FFA Folder and double click the S.TXT file. It contains a copy of the FCELL Output window. Now, (in Notepad) hit Ctrl+H, enter a . into the Find What box, and click Replace All. This replaces all the dots with nothing, and leaves the 4 unsolved games on display. Finally, click File, Save As, and Tmp.txt.

Now, to finish the project, enter tmp.txt into the [Run FCELL] Input box and hit [Return]. After a couple of seconds you'll see the list of 4 games all with N: prefixes. This means that FCELL took a bit more time to get a Not Solvable result for the Unsolved game.





Project #5

In this project we'll see how to use the final two components of the lab package that you unpacked in your initial download: a file called init.bat and a program called NUM. These files require the execution of a Command Window to be useful. If your machine does not support Command Windows, I'm afraid you won't be able to complete this last project.

The NUM program is a simple piece of software, given nn-mm as its startup parameter, and a file to write to, it writes :nn, :nn+1, ... :mm into the file on successive lines. This is useful to create an input file for FCELL when you are interested in the solution lengths of games in a certain range. This project will also expose you to Command Windows and some of their features.

To get started, take a look at the init.bat file. Browse into the FFA Folder, select init.bat, right click, and select Edit. A .bat file is a text file with a list of commands to be executed inside a Command Window. Study the lines in the file. The line beginning with CD (change directory) needs to be set up once, and the line beginning with NUM will need to be set up each time you use this command. We'll get back to this later.

For now, we need to get the machinery in place to execute the init.bat file. This is done as follows:

(1) Click the Start button on your Desktop, and move through All Programs, Accessories, to Command Prompt. This works on my Windows XP system, something similar should be available on your machine if a Command Prompt is even possible.

(2) Now, with Command Prompt highlighted, right click. Go to Send To, Desktop (create shortcut), and click it. This should put a Shortcut on your Desktop. Click Start again to clear it, and minimize any other windows so that you can get a clear view of your Desktop. Drag the Command Prompt Shortcut into the FFA Folder, and open the FFA Folder.

(3) Select the Command Prompt, right click, and then click on Properties. You should now see a highlighted command with something .exe near the right. You want to replace any parameter to the right of .exe with /K "C:\Documents and Settings\user\Desktop\FFA\init" where "user" is your username in the actual path to FFA on your Desktop. When you have done this, click Apply.

(4) Now, you have to change the user in the CD line of the init.bat file to the same path as in step 3, above. Select init.bat, right click, and Edit it to do this.

(5) With the right path set up in the shortcut's properties, and the same path in the init.bat file, when you double click the Command Prompt Shortcut, it should execute init.bat and create tmp.txt with NUM 00-99. Try it.

Notice that init.bat's last line is exit. If you want to open a Command Window to remain active and work in it, you would delete this line (and the NUM command ahead of it). You would also want to further define the properties of the Command Window Shortcut to make it a larger window with a good Lucida font, and so forth. I'll leave this as an exercise for the student.

In the future, when you want to put a range of games into tmp.txt, you will first need to edit init.bat (Select, Right Click, Edit), and define the input parameter to NUM. If you use leading zeros, so will NUM. Leading zeros are echoed by FCELL to the output file, and they make it easier to sort the file. SORT and other commands are available in Command Windows. You can access them in an open window, or add them to the init.bat file. Again, exercises for the student.





That's it for this tutorial. If you have any suggestions about something that was unclear (and how to word it better), something that didn't work on your machine, or anything you think I should know, please send me an email (browse my website, you'll find my address if you look for it!).