Freecell Solver Links
Resources
Freecell Solver Resources on the Net.
-
Freecell Solver's Mailing-List - a mailing-list dedicated to discussing the usage and development of Freecell Solver and general techniques for solving card solitaire games. Hosted by YahooGroups.
-
Freshmeat.net's App-Index Record - the record for Freecell Solver at Freshmeat. You can find there a version history, a Freshmeat internal hit count, and other useful information.
-
Freecell Solver Lecture - A lecture I gave to the Haifa Linux Club about the development of Freecell Solver.
-
BerliOS' Project Page - contains instructions for checking out the source from its Subversion repository and other goodies.
Technologies
Technologies used by Freecell Solver or that aided in its development.
-
libavl - a very nice library which contains optimized C implementations of an AVL and Red-Black binary trees. It's GPLed, which means it can only be used by certain types of Open-Source software.
-
libredblack - an ANSI C implementation of a Red-Black tree. Takes some modifications to compile on Win32. LGPL, so can be used by a code of any license.
-
glib - a C library used by gtk+, which can also be used separately (as is the case with Freecell Solver). Contains implementations of a hash, and an unoptimized balanced binary tree. Both are slower than libavl/libredblack or the internal hash implmentation, and it is less programmer-friendly.
-
The A* scan - a states graph scan that uses a priority queue for determining which state to go to next. This page contains some source code, but the explanation is also very good.
-
The dmalloc malloc debugging library - a library to trace memory leaks. Freecell Solver used to have some of those in various stages of its development, and this library helped to remove them. It has a rather awkward output, and I had to use a debugger interactively to complement it, but it is still quite helpful.
-
Autoconf, automake and libtool - a trio of tools that help maintain a portable building for a software project across UNIX and similar platforms. Freecell Solver did not use for a large time, but I switched to it in order to have a portable way to build it as a dynamically-linked library.
-
Valgrind - a sophisticated memory debugger for x86-linux. Helped trace a few hard-to-catch bugs in Freecell Solver.
-
Vim - Vi Improved - an excellent cross-platform text editor with many powerful features.
-
Subversion - an Open-Source version control management system that has been used in maintaining the Freecell Solver codebase. It replaced CVS which is older and much more limited.
Programs that use Freecell Solver
-
kpat - a Solitaire suite for the KDE desktop for UNIXes. Uses Freecell Solver to solve its Freecell boards, starting of the version that was shipped with KDE 2.1.
-
Freecell3D - a 3-Dimensional Direct-X Freecell Implementation for Windows. Shareware.
-
Freecell Pro - a free Freecell implementation for Windows with many professional features. Integrated Tom Holroyd's Patsolve, and the original Don Woods' solver as well as my own. Source code is available.
-
PySolFC - a collection of more than 1,000 Solitaire card games originally based on PySol. Has optional support for playing using the Freecell Solver executable.
People
Links to the homepages of people who contributed in any way to Freecell Solver. Because of spamming issues, I don't put their E-mails here. In case you want their E-mail address, either go to their homepage or send me an E-mail.
-
Stephan Kulow - as the maintainer of kpat for a brief period, he contributed bug fixes, memory leaks reports, and general commentary to Freecell Solver. Stephan and I still hold discussions about FCS in the mailing-list or in private.
-
Justin Heyes-Jones - I learned about the A* scan through his webpage, and he allowed me to incorporate his binary heap code into Freecell Solver.
-
Markus FXJ Oberhumer - contributed some bug-fixes and bug-reports to Freecell Solver. He is the author of PySol, a very nice Solitaire suite which is written in Python. I used its code to write a script that automatically generates its initial boards.
-
Dr. Tom Holroyd - author of Patsolve and someone whom I discussed Freecell solving with for many E-mail transactions. He inspired or encouraged many features in Freecell Solver.
Other Solvers
We have competition. But there's nothing wrong with competition. ;-)
-
patsolve - an ANSI C program that automatically solves games of Freecell and Seahaven Towers. Source code is available under the GPL. Its author, Tom Holroyd, and I discussed Freecell solving for quite a few E-mail transactions, before I established the mailing-list.
-
Freecell Pro - a Freecell implementation for Win32 that contains the solver by Don Woods. Very fast and relatively accurate solving. Source code is available here.
-
Gfreecell - an implementation of Freecell for Gtk+ with its own solver. Source code is available, but it's in French. %-)
-
Freecell Tool - a Win32 program that hijacks games out of Microsoft Freecell and displays their solution.
-
Berto's Freecell and Brain Jam Solvers - Two programs for Windows that solve Freecell and Baker's Game (which he refers to as Brain Jam). Source code is not available.
-
autofree - A freeware program by Lingyun Tuo that automatically solves Freecell.
-
A Solver for Mathematica - a Mathematica application by Luc Barthlet that solves Freecell games. Source code is available and is explained in detail.
-
William Tunstall-Pedoe's Solver - he mentions he wrote one in his C.V., which contains other interseting artificial intelligence musings. The source code and the binary are not available for free download online and may or may not be available upon request.
-
X11 Seahaven - contains C++ source code for a Seahaven Towers auto-solver.
-
Common LISP Solver - by Kevin Atkinson and Shari Holstege. Written in Common LISP and the source code is available under the GPL. It was written as part of an AI course project and contains a final report.
-
C++ Port of Freecell Solver by Michael Mann - Michael Mann ported FCS to C++ and used doxygen to cross-reference and document the code. Covers version 2.2.x of the program.
-
Dominic Veit's Freecell Solver - a solver written in Java that does not use back-tracking and is still able to win 85% of the games.
-
Gary Campbell's FCELL.COM - a solver for Freecell written in x86 assembler for DOS and compatible environments. Reportedly very fast and uses some interesting techniques. See some discussion of it in the fc-solve-discuss mailing list.
Reviews of Freecell Solver
-
Senior Citizen - quite amusing, IMO.
-
A review by Mark Turnage of the "Group of Linux Users in Memphis" - also quite amusing.
General Freecell Links
-
The Freecell FAQ - contains a lot of interesting questions and answers regarding Freecell.
-
An unsolvable instance of Freecell - a proof that not all initial Freecell instance are solvable.

