Freecell Solver's Features List

Usability Options

  • The stacks and freecells retain their position throughout the presented solution.
  • Can present either the intermediate states (stepping at one move or sequence move) or the moves that are required for the solution, or both.
  • On UNIX-like operating systems: accepts some user signal combinations that turn some run-time debugging information on and off.
  • Some configurations are very fast: can solve the first Microsoft Freecell 32,000 deals in 74 seconds on a Pentium 4-2.4 GHz computer. (432 layouts per second). On a Core i3 computer, these deals are solved in 11.5 seconds ( 2,781 layouts per second).
  • Option to use atomic moves which guarantee an accurate verdict. (non-atomic scans may report a false negative)
  • Ability to read command line arguments from a file, or from a preset collection. Makes command lines much less verbose.

Development Features

  • Available as a library for use within third-party applications. It is licensed under the MIT/X11 License, which means it can be used without any restrictions.
  • The core library and program is written in C code supported by modern C compilers such as GCC and LLVM/clang.
  • Full compatiblity between dynamically-linked third-party applications to the version of the library that is used.
  • Compile-time options for hard-coding several game-types parameters, that can make the solver faster. There's a combined FCS_FREECELL_ONLY mode.
  • A test suite is included as part of the distribution.

Scan Options

  • Supports the DFS (= Depth-First Search), Randomized DFS and Best-First-Search scans. Which one can be specified at run-time.
  • The order of the tests to be conducted on a given state can be specified at the beginning of the scan. It is also possible to include only a subset of the available tests.
  • With the A* scan, one can specify the weights of the different state evalutaion parameters.
  • One can limit the scan to a certain number of checked states.
  • It is possible to resume a scan from a pre-empted position.
  • After a solution path was found it can be optimized using a BrFS (= Breadth-First Search) scan on the intermediate states.
  • There is an option to reparent states during a scan if their depth in the solution tree is higher than the one with which they were reached. This also tends to shorten the solution length.
  • The Randomized DFS scan accepts a user-defined seed.
  • Several scans can be played on the same states' collection (while switching from scan to scan) giving on average a faster solving time.
  • It is possible to specify a static prelude of quotas to be played before the perpetual loop.
  • With the random-DFS scan, it is possible to specify a different moves selection for each depth in the DFS-stack.

Game Types

  • Can solve games whose sequences are built by suit, by alternate colour or by rank regardless of colour.
  • Can solve games whose sequence move is limited by the number of Freecells and empty columns, or unlimited.
  • Can solve games whose vacant columns can be filled by any card, by kings only, or by no card whatsoever.
  • Run-time choice of the number of freecells and columns. (limited by a compile-time directive)
  • Supports games of one and two decks.
  • List of PySol (PySolFC version) variants that can be solved:

    • American Canister
    • Baker’s Dozen
    • Baker’s Game
    • Bath
    • Beleaguered Castle
    • Box Fan
    • British Canister
    • Canister
    • Castles in Spain
    • Cat's Tail
    • Challenge Freecell
    • Citadel
    • Cruel
    • Deep
    • Eight Off
    • Exiled Kings
    • Fan
    • Fastness
    • Forecell
    • Free Fan
    • Freecell
    • Good Measure
    • Kentish
    • King Only Baker’s Game
    • KingCell
    • Kings
    • Lightweight
    • Ocean Towers
    • Opus
    • Penelope's Web
    • Penguin
    • Portuguese Solitaire
    • Relaxed Freecell
    • Relaxed Seahaven Towers
    • Repair
    • Retinue
    • Seahaven Towers
    • Seven by Five
    • Seven by Four
    • Simple Simon
    • Snake
    • Somerset
    • Spanish Patience II
    • Streets and Alleys
    • Stronghold
    • Super Challenge Freecell
    • Tuxedo

    More user-invented variants can be specified on the command-line using command-line options.



Share/Bookmark