Online Freecell moves’ expander
Solver
An online moves’ expander for Freecell, a kind of card solitaire game, and several related solitaire games. Please enable JavaScript.
Status: Not started
Board Input Parsing Errors:
Bookmark This Form
You can use the button below to generate a URL that will auto-populate the form. This is also useful for reporting problems.
How to Use
TODO : Update. Enter a board in the input text area in Freecell Solver’s input format with each line of input representing a column (or stack) of cards. Freecells and foundations can also be specified. Numbered layouts (compatible with Microsoft Windows FreeCell, FreeCell Pro and compatible Freecell implementations) can be input using the deal number feature. Press the “Solve” button to run the solver, and assuming it was successful, you will be able to preview an animated solution or read and/or copy the output from the output box.
Enjoy!
Solving other, similar, games
Select the game from the drop-down.
Technology
This is a web-based interface to Freecell Solver, that was translated from the C source code to JavaScript, by using the emscripten LLVM bit-code to JavaScript compiler. Like Freecell Solver itself, this JavaScript port is open-source software under the permissive MIT/Expat licence.
Other technologies used for writing this page are:
jQuery - the “write less, do more” JavaScript library. A convenient JavaScript browser-side library for DOM manipulations, UI and much more.
jQuery UI - a library for user-interface controls based on jQuery.
jQuery Phoenix Plugin - a form persistence plugin for jQuery using the HTML5 localStorage mechanism.
Solitairey by Paul Harrington (see the open source maintenance branches) - was used for the graphical animated preview. Under the 2-Clause BSD licence.
YUI - a JavaScript library used by Solitairey.
TypeScript - a static-typing superset of JavaScript. I am not a static-typing-purist, but I find TypeScript a significant improvement.
jquery-querystring -a plugin for jQuery for manipulating query strings.
Credits
Alon Zakai - writing emscripten, the LLVM-to-JavaScript compiler that was used to prepare this page, based on the original C (gnu99) source, and answering some bug reports and questions I filed about it.
Stefan Petrea - inspired the implementation of the populate-with-sample-board button.
Amir Aharoni - tipped me regarding integrating
@font-face
into my CSS.Ari Becker - tipped me regarding unsolvable deals.