Showing posts with label games. Show all posts
Showing posts with label games. Show all posts

Thursday, July 23, 2009

Screencast of Freecell Solver in Action

Yesterday, I spent some time on preparing a screencast of PySolFC auto-solving a deal of Freecell using Freecell Solver . Here's an embedded player:

I remember the first time I saw KDE's KPatience automatically solving a deal of Freecell, while using Freecell Solver as its back-end. Seeing the cards move on their own was very cool, and brought me a lot of joy. Now that PySolFC has built-in support for Freecell Solver, I was able to use it to prepare the screencast. I hope you'll enjoy seeing this screencast, and would be interested in trying out PySolFC and Freecell Solver.

I'm going to blog about how I prepared the screencast on my tech blog, which may prove instructive to other people wanting to prepare screencasts on Linux. This was the first video I ever prepared and producing it proved to be a pleasant experience, even though some tasks did not work right away.

Wednesday, June 24, 2009

Freecell Solver 2.32.0 was Released

Freecell Solver version 2.32.0 has been released. It is available in the form of a source tarball from the download page.

This version features a large code cleanup which also resulted in a substantial speed boost. The code cleanup was guided by a script that was written to list all occurrences of identifiers with the same name, in order to find uncommon identifiers.

There were several bug-fixes done to the CMake-based build system, and there's now support for Google's tcmalloc and hidden internal identifiers in the DLL/shared-library. The inline keyword for defining inline functions is now supported on more compilers and more functions or macros have been converted to inline functions.

We hope you enjoy this release.

Sunday, June 7, 2009

Freecell Solver 2.30.0 was Released

Freecell Solver version 2.30.0 has been released. It is available in the form of a source tarball from the download page.

This release adds the run-time presets "gooey-unknown-thing", "sand-stone" and "slick-rock" that aim to minimise the average lengths of the resultant solutions. (as opposed to minimising the time it takes to solve). It also adds support for using any of the tree implementation supplied by libavl version 2 for both the positions storage and the stacks storage.

There's a bug fix in the fc-pro range solver for a bug that caused the Freecell Pro compatible moves to be mis-calculated. Moreover, the code has experienced a substantial re-organisation and the Makefiles for the different compiler were merged into one (which was later fixed).

There are also new compile-time options to exclude various functionality that may not be needed.

Download it while its hot!

Sunday, May 17, 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.

Monday, April 27, 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).