Online Freecell moves’ expander

Moves Expander

An online moves’ expander for Freecell, a kind of card solitaire game, and several related solitaire games. Please enable JavaScript.

Instructions

Downloading…

Board Input Parsing Errors:





Cards display




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

Enter a solution's textual representation in the input text area in the Freecell Solver’s “-p -t -sam -sel” format.

Enjoy!

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.

  • Joose - an object oriented programming system for JavaScript (inspired by Perl's Moose). Note: it is no longer used here due to not being compatible with Node.js and non-browser environments.

  • jquery-querystring -a plugin for jQuery for manipulating query strings.

  • Firebug - a web development tool for Firefox, that provides a JavaScript debugger, a CSS manipulation tool, DOM introspection and more. (The Opera web browser's Opera Dragonfly does something similar for Opera, and is also useful.)

  • Google Web Fonts - provides an attractive font for the button leading to this page.

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.