Freecell Solver's Previous News Items
17-May-2009: Freecell Solver 2.28.0 was Released
Freecell Solver version 2.28.0 has been released. It is available in the form of a source tarball from the download page.
This version contains several significant optimisations. Now the "freecell-only" preset can solve the first 32,000 Microsoft Freecell deals at 286 deals per second with gcc, and 301 deals per seconds with Intel's icc. (on a Pentium 4 2.4GHz computer). There are many other internal cleanups, build system tweaks, and new makefiles to build using some alternative C compilers.
The source archives from now on will be distributed as tar.bz2 instead of tar.gz which gives better compression, and a faster download.
See comments and comment on this.
27-Apr-2009: Freecell Solver 2.26.0 was Released
Freecell Solver version 2.26.0 has been released It is available in the form of a source tarball from the download page.
This version contains several significant optimisations (up to the point where the "freecell-only" preset can solve the first 32,000 Microsoft Freecell deals in 200 deals per second.), and improvements to the build system (including the elimination of compiler warnings). Finally, the test suite now builds correctly inside the source distribution.
We have more ideas for optimisations and other enhancements, and this is just an intermediate release (but one which should be perfectly usable).
See comments and comment on this.
18-Apr-2009: Freecell Solver 2.24.0 was Released
Freecell Solver version 2.24.0 was released today. It is available in a source archive from the download page. Windows command-line binaries should be available momentarily.
This version contains some fixes to crashes and memory leaks when using the -opt with a range of boards (or otherwise when a solver instance is recycled), a new "freecell-solver-fc-pro-range-solve" executable (built by default, but not installed), which runs a range of deals using the solver and outputs the number of FCS moves, the number of FC-Pro moves, and the FC-Pro moves in standard notation.
For developers, this release also contains a build type for profiling, many cleanups to the code, and a makefile to generate LLVM bitcode.
See comments and comment on this.
31-Mar-2009: Freecell Solver 2.22.0 was Released, Now Under the MIT/X11 License
Freecell Solver version 2.22.0 is now available for download from the download page. This release converts from Public Domain "licensing" which is problematic for source code to the more explicit and less controversial MIT/X11 License. (Some source files that had been originated by other parties are still under the public domain).
Also in this release is some fixes to the build system (in part thanks to a contribution by Risko Gergely), including the ability to prepare a static library.
Happy solving, and enjoy April Fool's Day Tomorrow.
See comments and comment on this.
26-Mar-2009: Freecell Solver 2.20.0 was Released, along with a Windows Installer
Freecell Solver version 2.20.0 is now available for download from the download page. The big news is that executables for Microsoft Windows (x86) are now available for it, for the first time since the early 2.8.x releases. And this time, they come in the form of an interactive "Next→Next→Finish" installer based on the Nullsoft Scriptable Install System (NSIS).
Also in this release are a fix to a crash when using the range solver with the "-opt" flag (and other similar scenarios), a more comprehensive NEWS file and some other fixes.
See comments and comment on this.
21-Mar-2009: Freecell Solver 2.18.0 Was Released
As previously announced on the fc-solve-discuss mailing list, version 2.18.0 of Freecell Solver is now available for download as a source tarball from the download page.
Here are some highlights of the new release:
- Added the FCS_FREECELL_ONLY compile-time flag to hard-code the settings for Freecell and thus allow a faster run-time. When applied, it improves the speed of the solver from 140 deals / second to 164 deals / second.
- Fixed using libredblack for states and stacks storage, and also added a libJudy-based backend for them.
- Added the -Wall (= turn "all" warnings on) by default for gcc in the CMake build.
- Updated the "TODO" file in the distribution which was heavily out-of-date.
- Documented the "What's new" of some previous releases in the "NEWS" file.
- Got rid of the Hard-DFS scan, which was no longer useful. It is still accepted as an argument, but is now using the Soft-DFS routines instead.
- Many internal refactorings, cleanups, tweaks and fine-tunings.
See comments and comment on this.
19-Mar-2009: Welcome to the fc-solve Blog
Welcome to fc-solve.blogspot.com. This will serve as the future blog and news-feed for Freecell Solver and related news, like general Freecell resaerch, automated solving of other Card solitaire variants, and solving or playing other puzzles, riddles and games.
Freecell Solver started from a program I wrote (first in Perl and then re-implemented in ANSI C) to see if some ideas I had for solving Freecell would work. It performed well enough that I created a web page for it on my Technion's homesite, named it "Freecell Solver" and announced it on Freshmeat. Since then, due to the constant feedback I received from people who tried to use it, it was greatly enhanced and expanded.
One of the things I invested the most time in was the online resources for support and information. The web-site started from one page, and then had two pages, and now has at least ten different pages, all with a different purpose. I also started a mailing list at YahooGroups to discuss the program and related programs, and it proved to be very active and lively.
Another thing that I set up were release-news that were present on the front page of the site and the old news page. A few days ago, I thought to myself: "If I'm maintaining these news items, why not create a web feed out of them?" And if we're going to have a web-feed - why not have a blog, with comments and the whole enchilada?
So this is the next step in communicating about Freecell Solver and related matters - a weblog. It's also my excuse to play with Blogger.com, and see how it fares in comparison to other web-journal services I know. (Like my friend once said "You gotta move or you stone.").
So if you've got something to say, say it here in a comment. And remember: if you're not in it for fun - I'm out of here!
See comments and comment on this.
15-Mar-2009
Freecell Solver 2.16.0 is now available. Culminating many person-years of effort (OK - some person-days of effort), it is the best release todate.
The highlights of this release are a bug fix to the iteration numbers in the "-s -i" display, and an internal refactoring of the ptr_state_with_locations_t struct into a separate ptr_state_t (the key) and a ptr_state_extra_info_t (the value). The latter should not affect the external behaviour or API in any way.
This release (like previous ones) is available from the download page. Next on our agenda is getting a binary package for Microsoft Windows out-of-the-door, and more code cleanups, optimisations and enhancements.
25-Jan-2009
Freecell Solver 2.14.0 was released today. This release features a major speed boost, and an important bug fix: when "--sequence-move unlimited" had been specified in previous versions, it sometimes did not take effect due to other parameters, and as a result the sequence move was still limited. (Thanks to larrysan for reporting this problem).
This release comes relatively shortly after the previous release, and without any developer versions. This is in an effort to make more frequent stable releases with notable features.
10-Dec-2008
Perl 6 will be ready by Christmas, but of an unknown year. On the other hand, Freecell Solver 2.12.0, is already ready for Christmas 2008, and was released today. The highlights are a new configuration and build system based on CMake, which results in faster configurations and builds, and a much reduced archive size; a new suite of automated tests; an optimisation to the command line processing and a new --version flag.
Happy holidays and hope you enjoy this release.
15-Dec-2005
The Downloads are now working again. Plus, several new pages were added or updated in the site:
- The Current Status Page answers the question "Is Freecell Solver dead?".
- Several new items were added to the "To Do List" page. It now also features a table of contents.
- There is now a page about Giving or Getting Academic Credit for working on Freecell Solver.
04-Oct-2003
There is now PySol Integration with Freecell Solver available here. This enables receiving hints from Freecell Solver and seeing demos of it while within PySol.
28-Sep-2002
Freecell Solver 2.8.0 has been released. This version features a better documentation and help screens, a preset system, and an option to read paramters from files. Plus, it is possible to run one instance of the solver after the other in case the other one has returned a negative verdict.
All in all: a lot of added usability!
12-Jul-2002
Freecell Solver 2.6.0 has been spotted in the wild. This version features atomic moves, which are slower than the traditional ones, but guarantee a true verdict. It also has a --prelude switch that allows running a static order of quotas at start for the participating soft threads, and makes constructing faster solving presets easier.
Several other flags were added, and the code has also been greatly optimized and cleaned up, which makes Freecell Solver much faster than it was before.
29-Mar-2002
Freecell Solver 2.4.0 was released. The highlight of this release is the ability for several scans to operate on the same state collection. This is done using a mechanism called "soft threads", which is switched in user-land and does not require system multi-threading.
18-Feb-2002
Freecell Solver 2.2.0 came into the world today. This release features several improvements and fixes to the library's internals - it now resides solely in the "freecell_solver_" namespace, has a more robust state output, and has a simplified and more modular scans' code. Aside from that, the maintainance of the package became more integrated and now it is possible to build an RPM by typing executing rpm -ta on the archive.
19-Dec-2001
Freecell Solver 2.0.0 was released. This version features a lot of new enhancements and additions:
- Added some presets for Beleaguered Castle, Citadel and Streets and Alleys.
- Re-factoring of the scans code to make it simpler.
- Added many functions to the programmer's library.
- fc-solve now uses it, so it is fully independant of the library it is linked against.
- Added a randomized DFS scan (with a user-defined seed).
- Win32 Makefile can now generate a working DLL
- Most importantly : a new initial digit! All hail the "2"!!
02-Oct-2001
Freecell Solver version 1.10.0 was released. This version can now solve deals of Simple Simon, as well as solving all the Freecell-like variants that it could before.
31-Aug-2001
Freecell Solver version 1.8.0 was released into the world. Its main highlight is its new building process based on GNU Autotools. Now, one can build a shared library, a static library and an executable across many UNIX variants out of the box.
I also adapted the GNOME AisleRiot board generation program to generate the boards of the new Solitaire variants that were added to it and are supported by Freecell Solver.
11-Apr-2001
Freecell Solver version 1.6.0 has been released. It supports a solution path optimization routine which enables it to generate solutions that contain a smaller number of moves. Furthermore, there are some optimizations, so it should be at least a little faster.
Otherwise, a lot of comments were added to the code, to make it easier for interested developers to understand it.
12-Feb-2001
I have set up a mailing-list for Freecell Solver. For the mailing-list homepage and for subscription information consult the following page:
http://groups.yahoo.com/group/fc-solve-discuss/
If possible, send your questions or commentary there. If not you can still E-mail me (Shlomi Fish).
07-Feb-2001
The long-awaited Freecell Solver 1.4.0 is now available. Changes from the previous version include some fixes for bugs and memory leaks (mostly library-related), as well as an improved Soft-DFS scan, plus A* and BFS scans. (which are experimental and do not always work properly).
A choice between all of those scans is available at run-time.
26-Jan-2001
I have setup a mirror for Freecell Solver at BerliOS. It will contain much of the same contents as this one, but will not be updated as frequently.
The motivation for setting up the mirror was because I noticed that the connectivity at the Technion was not failsafe, and I want a backup site.
21-Dec-2000
Version 1.2.0 of Freecell Solver is now available for download. This version has several improved moves so it can solve more boards. It also sports a more robust command-line argument handling so you can expect much less segfaults if you use it improperly.
The code has also changed quite a bit, so it may be of interest to developers who are interested to look under its hood.
19-Nov-2000
Freecell Solver version 1.0.0 was released. This version can solve more game types, and can be compiled so it will be less memory intensive which is especially good for such games as Die Schlange or Der Katzenschwantz.
Now there is also a library interface for use with games, which supports suspending a solution process and resuming it from its last position. And naturally, there is a bug fix or two, so you should upgrade. :-)
But the most important news is that it is no longer version 0.x.y but rather version 1.x.y. Hoorah for the new initial digit!
09-Oct-2000
Freecell Solver version 0.10.0 was released. This version features support for several Solitaire variants besides Freecell, such as Forecell, Seahaven Towers and Eight Off. Aside from that, it offers a more verbose solution, as well as several bug-fixes.
28-Aug-2000
Freecell Solver version 0.8.0 was released. New features in this version include:
- Some bug-fixes. (users of previous versions should upgrade)
- Support for a variable number of freecells, stacks, and cards per stack.
- Board generators for Microsoft Freecell, Freecell Pro and PySol.
- An option to use the balanced binary tree implementations of libavl , glib , or libredblack . Using them makes Freecell Solver about 33% faster.
- Support for using "T" instead of "10" in board input/output.
- Improved Documentation.
28-Jul-2000
Freecell Solver version 0.6 was released. This version features a more modular code as well as the following usability features:
- An extra movement that allows Freecell Solver to solve some boards which it could not solve previously.
- The order of the stacks and freecells is preserved throughout the solutions.
- Limit to a certain number of iterations (so it will stop before it consumes too much memory)
- Specify the order of the movements that will be tested. Usually, a test order can be found that will solve a given board really fast.
06-Jun-2000
Freecell Solver version 0.4 was released. This version contains three major code optimizations, so it now runs much faster. It can now also start solving from a non-initial board.


