Online Freecell solver

Solver

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

Note to Microsoft Windows 10's FreeCell Users!

Apparently, in recent versions of Microsoft Windows FreeCell on Windows 10, the deal number display there is misleading for the "Random" deals. This appears to be a bug in MS FreeCell. One can instruct it to deal a numbered deal, or alternatively input the cards' layout into the web-based solver manually using the text notation.

We apologise for the inconvenience, but note that it is not our fault and it is up to Microsoft to fix it.

We can recommend that you try PySol FC ( https://pysolfc.sourceforge.io/ ) instead, which shares some maintainers with Freecell Solver, and which is FOSS (see https://en.wikipedia.org/wiki/Free_and_open-source_software ) and gratis and should run fine on Windows and other platforms.

Instructions

Downloading…





Input a card patience/solitaire layout in the fc-solve format:

Status: Not started

Board Input Parsing Errors:



(Format as a preset file, with backslashes at the end of lines. See the online documentation for information regarding syntax.)

Note: The animated and graphical display is not currently available for the variants of Solitaire which do not match the default 8-columns and 4-freecells Freecell variant ( Reference) with limited sequence move-length, tableau built by alternate colours, and empty columns that can be filled by any card.


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 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.

  • 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.