Thursday, June 13, 2024

New Freecell Solver version: 6.10.0

Freecell Solver is an open source library and some command line applications, for automatically solving several variants of card Solitaire / Patience games, including Freecell.

There is a new release of the solver, version 6.10.0 with more details available in NEWS file.

Among the highlights are some code cleanups, some fixes, and some new features. Furthermore, Games-Solitaire-Verify was enhanced to verify solutions of some other solitaire variants, and there are a deal finder and a moves expander web pages.

Share and enjoy!

Tuesday, August 4, 2020

New Freecell Solver version: 6.0.1

Freecell Solver is an open source library and some command line applications, for automatically solving several variants of card Solitaire / Patience games, including Freecell.

There is a new release of the solver, version 6.0.1 with more details available in NEWS file. Note that this version does not break compatibility with the older releases, and we just felt like incrementing the primary digit.

Among the highlights are some code cleanups, some fixes, and some new features. Special thanks go to Antonio Rojas for reporting a build issue in v6.0.0, which prompted a fix.

Share and enjoy!

Saturday, April 11, 2020

New Freecell Solver version: 5.22.0

Freecell Solver is an open source library and some command line applications, for automatically solving several variants of card Solitaire / Patience games, including Freecell.

There is a new release of the solver (version 5.22.0) with more details available in NEWS file. Among the highlights are cleanups, fixes, and some new features.

In addition, we are proud to announce that our attempt at classifying as many zero freecells' deals as possible, as winnable or impossible to solve, has recently gone below 300,000 remaining unknown / intractable deals.

Share and enjoy!

Tuesday, December 31, 2019

New Freecell Solver version: 5.16.0

Freecell Solver is an open source library and some command line applications, for automatically solving several variants of card Solitaire / Patience games, including Freecell.

There is a new release of the solver (version 5.16.0) with more details available in NEWS file. Among the highlights are the unbundling of the rinutils library, generating .msi installers using WiX, and some refactoring and optimisation.

Share and enjoy!

Sunday, April 14, 2019

Graphical and Animated Display for the Online Freecell Solver

We are happy to announce that the online web-based Freecell solver now has a graphical and animated solution display, thanks to the open source version of Solitairey. The older text-based solution display is still available.

Freecell Solver is an open source library and some command line applications, for automatically solving several variants of card Solitaire / Patience games, including Freecell.

Also of note is the new releases of the solver (up to version 5.6.0) with more details available in NEWS file, and some progress in compactly storing Freecell positions/states, going below the 64-bits threshold.

Share and enjoy!

Saturday, October 27, 2018

Freecell Solver 5.0.0 was Released

Freecell Solver version 5.0.0, has been released. It is available in the form of a source archive, Windows 32-bit and 64-bit binaries, and a live online version (which requires JavaScript, and is compatible with most modern browsers, including those for mobile devices) from the download page. Freecell Solver is an open source library and some command line applications, for automatically solving several variants of card Solitaire / Patience games, including Freecell.

The new release puts the headers under a #include <freecell-solver/…> prefix, adds some new executables, command line options, and compile-time options, and implements several cleanups and speedups.

Also of note is that the website was improved with a modified design which is friendlier to mobile devices (so-called “responsive” web design), some content updates, and some usability enhancements.

Thursday, March 22, 2018

Freecell Solver 4.18.0 was Released

Freecell Solver version 4.18.0, has been released. It is available in the form of a source archive, from the download page. Freecell Solver is an open source library and some command line applications, for automatically solving several variants of card Solitaire / Patience games, including Freecell.

We now have a Microsoft Freecell deal finder (available online) which is faster than a naive search, provide x86-64 Windows binaries, and have a new “looking-glass” with improved performance.

Friday, October 20, 2017

Freecell Solver 4.14.1 was Released

Freecell Solver version 4.14.1, has been released. It is available in the form of a source archive, from the download page. Freecell Solver is an open source library and some command line applications, for automatically solving several variants of card Solitaire / Patience games, including Freecell.

There have been several intermediate releases since the last release that was announced on this news feed and you are well advised to upgrade. More information on the changes can be found in the NEWS.txt / NEWS.html.

Wednesday, October 5, 2016

Freecell Solver 4.4.0 was Released

Freecell Solver version 4.4.0, has been released. It is available in the form of a source archive, from the download page. Freecell Solver is an open source library and some command line applications, for automatically solving several variants of card Solitaire / Patience games, including Freecell.

This release is dedicated to the memory of Christina Grimmie ( Wikipedia Page ; YouTube account ), a musician and singer whom I was fond of and who was killed on 10 June 2016. The name of the new scan “one-big-family” was inspired by the name of this video of hers. Some others of my favourite videos by Grimmie:

The new release features the new scan, fixes several bugs, and incorporates many code cleanups, refactorings and optimisations. More information can be found in the NEWS.txt / NEWS.html. It also adds the transpose-freecell-board.py program (thanks to Manish for the idea) and removes some old board generation programs that are no longer relevant.

Friday, March 25, 2016

Freecell Solver 4.2.0 was Released

Freecell Solver version 4.2.0, has been released. It is available in the form of a source archive, from the download page. Freecell Solver is an open source library and some command line applications, for automatically solving several variants of card Solitaire / Patience games, including Freecell.

This release sports the new configuration theme “-l conspiracy-theory” (or “-l ct”) which is somewhat faster than the best contender up to it, “-l amateur-star”, some relatively minor bug fixes, new compile-time options, and many small and somewhat larger code cleanups, refactorings, and optimisations.

“conspiracy-theory” is a reference to the Jewish holiday of Purim, which took place around the time of its release and an old post of mine about it.

Enjoy!

Monday, September 28, 2015

Freecell Solver 4.0.0 was Released

Freecell Solver version 4.0.0, has been released. It is available in the form of a source archive, from the download page. Freecell Solver is an open source library and some command line applications, for automatically solving several variants of card Solitaire / Patience games, including Freecell.

This release sports the integration of the scans of Tom Holroyd’s patsolve for improved atomic moves-based solving, some other new flags with bug fixes, a transition of the Python code to Python 3, and some other changes that are mentioned in the NEWS file.

The most significant digit was increased due to the integration of patsolve. Enjoy!

Monday, May 19, 2014

Freecell Solver 3.26.0 was Released

Freecell Solver version 3.26.0, has been released. It is available in the form of a source archive, from the download page. Freecell Solver is an open source library and some command line applications, for automatically solving several variants of card Solitaire / Patience games, including Freecell.

This release features some fixes for crashes on malformed input, as reported by the Mayhem team to the Debian bug tracker (thanks!), fixes for newer versions of the GCC compiler, CMake and Games::Solitaire::Verify, and some other changes that are mentioned in the NEWS file.

Enjoy!

Friday, February 21, 2014

Freecell Solver 3.24.0 Release: Mourning Adrian Ettlinger

Freecell Solver version 3.24.0, has been released. Freecell Solver 3.24.0 is available in the form of a source archive, from the download page. Freecell Solver is an open source framework (library and some command line applications), for automatically solving several variants of card Solitaire / Patience games, including Freecell.

This release is dedicated to the memory of Adrian Ettlinger who passed away on 23 October 2013, who was a good Internet friend of the primary maintainer of Freecell Solver (= Shlomi Fish), and who contributed a great deal to Freecell Solver and to Freecell research and programming in general (among other major life achievements, and contributions to man kind). You can read an obituary of Mr. Ettlinger by Shlomi Fish as it was posted to the Freecell Solver Discussions mailing list, and also read an an interview that Fish conducted with him back in 2003.

The new video-editing preset was named in honor of Ettlinger’s previous work in pioneering non-linear video editing back when he worked as an Electrical Engineer (and later as a software developer) for CBS corporation.


In any case, the main highlights of this release are:

  1. New Feature: the -l video-editing (or -l ve for short) flare-based preset that tends to yield shorter solutions on average. See a post with some performance analysis.

  2. A bug was fixed when providing input without a trailing newline character (“\n”). This was reported against the online JavaScript version was Olaf and was fixed globally. Thanks, Olaf!

  3. The distribution now contains the sources for the Split FCC (= Fully Connected Component) Solver which was an unsuccessful attempt to solve Windows Freecell deal No. 384,243 with two freecells. It may prove of general utility in the future, though.

Hope you enjoy this release and we extend our sadness to the other family members and friends of the late Mr. Ettlinger.

Monday, October 7, 2013

Freecell Solver 3.22.0 was Released: Bug Fixes

Freecell Solver version 3.22.0, has been released. Freecell Solver 3.22.0 is available in the form of a source archive, from the download page. Freecell Solver is an open source framework (library and some command line applications), for automatically solving several variants of card Solitaire / Patience games, including Freecell.

The highlights of this version are some bug fixes: the Win32 NSIS (= Nullsoft Installer) package should now build, run and process the presets (e.g: -l as properly). Furthermore, there's a bug fix to the command line flags processing, where flags whose prefixes are known flags were erroneously recognised as such (e.g: --resetjunk vs. --reset).

On the new features side, the JavaScript-based solver now accepts arbitrary fc-solve command line options, so it can be used to solve any of the supported variants of Solitaire, as well as support most other fc-solve features.

Enjoy!

Wednesday, June 26, 2013

Freecell Solver 3.20.0 was Released: Major Simple Simon Optimisations

Freecell Solver version 3.20.0, has been released. Freecell Solver 3.20.0 is available in the form of a source archive, from the download page. Freecell Solver is an open source framework (library and some command line applications), for automatically solving several variants of card Solitaire / Patience games, including Freecell.

The highlights of this version are some major optimisations to the solving code of Simple Simon, as well as many code cleanups, refactorings and smaller optimisations. Furthermore, the “qualified-seed-improved” preset was added, which yields shorter solutions.

Enjoy!

Thursday, May 30, 2013

Freecell Solver 3.18.0 was Released: JavaScript port

Freecell Solver version 3.18.0, has been released. Freecell Solver 3.18.0 is available in the form of a source archive, from the download page. Freecell Solver is an open source framework (library and some command line applications), for automatically solving several variants of card Solitaire / Patience games, including Freecell.

The highlights of this version are the new port to JavaScript, courtesy of the wonderful emscripten compiler from LLVM to JavaScript, that allows Freecell Solver to run inside modern browsers, as well as the fact that the test suite and the relevant now work on 32-bit systems (previously they only worked on 64-bit ones).

Enjoy!

Monday, April 1, 2013

Freecell Solver Enterprises™ Acquires Google Inc.

1 April, 2013, Tel Aviv, Israel: Due to the spectacular commercial success of Freecell Solver Enterprises™’s Enterprise Edition and its Webscale™ edition, we have amassed quite a bit of cash in the bank, so we decided to make a small but important strategical acquisition. As a result, Freecell Solver Enterprises™ is proud to announce its upcoming acquisition of Google Inc., which will result in an exciting synergetic merger.

Some of the upcoming changes would be replacing Google’s tech support (which is notoriously bad) by Freecell Solver Enterprises™’s world-famous and superb tech support (as detailed in the essay “Seven steps to remarkable customer service” by Joel on Software), as well as integrating Google search into Freecell Solver™ for an enhanced experience in solving Freecell. We are also planning on creating a separate YouTube top-level category for card Solitaire-related videos (including screencasts and presentations).

We are sure that the upcoming acquisition is going to allow Freecell Solver Enterprises™ to further its competitive edge, and allow us to have even more significant growth, which will in turn allow us to make even more significant acquisitions. As our CTO, Shlomi Fish, notes: “good times are coming.”.

Soon, people will say “Let’s Freecell Solver Enterprises™ Superheroic Web Search™ it!” instead of “Let’s Google it!”, for an exciting Web 3.141592™ experience.

Monday, December 10, 2012

Freecell Solver 3.16.0 was Released + New Screencast

Freecell Solver version 3.16.0, has been released. Freecell Solver 3.16.0 is available in the form of a source archive, from the download page. Freecell Solver is an open source framework (library and some command line applications), for automatically solving several variants of card Solitaire / Patience games, including Freecell.

This new release took about a month to prepare, and also contains less profound changes than the previous release, but still quite a lot to look for. It features the -l micro-finance-improved and -l qualified-seed presets, which improve upon the average solution length (at the expense of speed). The --flares-choice flag was added and one can specify --flares-choice fcpro to choose based on the length of the Freecell Pro moves. Another additional flag is --flares-iters-factor which multiplies the time the flares run at by a factor for a speed/solution-length trade-off.

Finally, the individual flares are now recycled and their memory is reused when they are no longer needed which yields a RAM optimisation in certain cases.

More information about all these can be found in the distributed documents of Freecell Solver.

In addition to all that, a new screencast of PySolFC solving Freecell using Freecell Solver is now available on YouTube. Make sure you expand the details for all the credits of the software and other material that was used for its creation.

Enjoy and happy holidays.

Sunday, November 4, 2012

Freecell Solver 3.14.1 was Released

Freecell Solver version 3.14.0, shortly followed by Freecell Solver 3.14.1, which fixed a build problem on Microsoft Windows, have been released. Freecell Solver 3.14.1 is available in the form of a source archive, and a Win32 self-installing executable, from the download page. Freecell Solver is an open source framework (library and some command line applications), for automatically solving several variants of card Solitaire / Patience games, including Freecell.

This release features several new features: we added a 6th Best-First-Search weight of the inverse of the number of cards not above parents, which has proven useful. We now also allow test groups inside the --tests-order and --depth-tests-order with the random-dfs scan to be ordered using the function =asw(…) based on those BeFS weights.

As a result, the preset -l amateur-star or -l as for short has been added, that uses that and is our fastest preset yet. Another new preset is -l micro-finance (or -l mf for short), which yields especially short solutions.

There are also some not-as-major features: input boards can now contain a leading colon (":") at the beginning of the line of columns, so they can be copy-and-pasted directly from the output of fc-solve with the -p flag. The dbm_fc_solver and depth_dbm_fc_solver now store the positions more compactly (which aided in researching two-freecell deals), and the core libfreecell-solver code was made more 64-bit enabled and many of the limits were converted to 64-bit friendly ones.

A final note: we have dropped support for building Freecell Solver with Microsoft Visual C++ and other non-GCC compatible compilers, which do not support the newer C standards, and other useful features of GCC. Building Freecell Solver with GCC, clang and other compatible compilers will be continued to be supported on Microsoft Windows as well as on Linux and other UNIX-like systems.

More information about all these can be found in the distributed documents of Freecell Solver.

Enjoy!

Sunday, September 2, 2012

Two Freecell Solvability Report for the First 400,000 Deals

With some help from some people on the fc-solve-discuss list and off the list (namely Amadiro from the University of Oslo and someone else that I met on IRC , I ran my solvers on the first 400,000 Windows Freecell deals with only two available freecells to see how many of them can be solved.

Here is the report:

Start Index End Index Solved Impossible Intractable
1 32,000 25,381 6,619 0
32,001 50,000 14,302 3,698 0
50,001 100,000 39,775 10,225 0
100,001 400,000 238,415 61,584 1 (No. 384243)
Total 317,873 82,126 1

So about 79.47% of the deals can be solved and the rest are impossible. The only intractable deal that none of my solvers could yield a verdict for is No. 384,243, and it spans a very large number of states:

  • The dbm_fc_solver got into Reached 12,821,000,000 ; States-in-collection: 13,620,999,440 before it failed to produce more results due to a limitation of the hardware where it was deployed on.

  • The depth_dbm_fc_solver yielded this:

    Reached 13,763,700,000 ; States-in-collection: 16,226,294,490 ; Time: 1345126456.520408 Queue Stats: inserted=16,226,294,490 items_in_queue=2,462,594,490 extracted=13,763,700,000

    with a curr_depth of 38. However, that solver may have some yet undiscovered bugs.

So what's next? I’d like to investigate some ways to scale to a larger number of states, perhaps by creating a distributed solver. A Google search for distributed breadth first search yields some results:

I hope you enjoy the statistics for the time being.