User:Shlomif/Freecell Solver

Freecell Solver is an ANSI C library (accompanied by several command-line programs that are also written in C) that automatically solves layouts of several variants of Solitaire card games. It can solve deals of FreeCell and several variations on this theme (such as Baker's Game, ForeCell, and Seahaven Towers (solitaire)) and also has specialised logic for solving layouts of Simple Simon.

The first version of Freecell Solver could only solve layouts of FreeCell (giving it its name) but support for other, similar Solitaire variants was added in version 0.10.0 Further support for the Simple Simon solitaire was added in version 1.10.0.

License
The original license of the solver (along with its source code) was the Public domain. However, version 2.20.0 (released in 31 March, 2009) converted to the MIT License. This was done due to concerns for the legal status of Public domain source code in various international jurisdictions.

Features
Among the notable features of Freecell Solver are:.


 * Can present the moves and intermediate states of the solutions, while retaining the original and in-play positions of the cells and columns/stacks. (see Glossary of solitaire).
 * Run-time customisation: supports different run-time configurations that may prove more beneficial for certain deals. The solver also supports "themes" or "presets" that allow for loading of a (potentially large) number of command line arguments from files, thus shortening the amount of typing required at the command line.
 * The library provides an Application Programmer Interface (API) which is namespace-clean, and can be arbitrarily instantiated and released. A multi-threaded version was created that creates several instances of the solver on different threads, which are then ran simultaneously.
 * Portability: the library and command line programs can be compiled and deployed on Microsoft Windows, UNIX-like systems (including Linux), and Mac OS X. It has been successfully compiled with several C compilers.
 * Supports a number of run-time configuration options for determining the Solitaire variant:
 * How sequences are built - by rank, by suit or by alternate color.
 * How many columns and cells are available.
 * Whether vacant columns can be filled by any card, by kings only or not not at all.
 * Whether a sequence move is unlimited or not.

Integration with Third-Party Software
Stephan Kulow, a KDE developer, integrated Freecell Solver into KPatience (or "kpat" for short - part of the KDE kdegames package.) starting from KDE 2.1. . Later on, in KDE 4.x, Freecell Solver was replaced by a different solver called "patsolve" by Tom Holroyd.

Freecell 3D, a shareware implementation of FreeCell for Microsoft Windows integrates Freecell Solver.

FcPro ("Solver Evaluation Edition"), a Microsoft Windows, and GPLed Freecell console, integrates Freecell Solver as well as patsolve, and an older Freecell solver by Don Woods, which was later modified by the FcPro developers.

The developers of PySol Fan Club Edition, a cross-platform, GPLed, collection of Solitaire games written in Python added support for Freecell Solver.