Freecell Deal Finder
Deal Finder
Find the deal number of a Microsoft Freecell deal, a kind of card solitaire game. Please enable JavaScript.
Status: Not started
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 board in the input text area in Freecell Solver’s input format with each line of input representing a column (or stack) of cards. Press the “Find” button to try to find the deal's index, and assuming it was successful, you will be able to read and/or copy the output from the status display.
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.