Home > Hobbies > FreeCell Solver insight

FreeCell Solver insight

Lately I’ve been tinkering with writing a FreeCell solver. On my phone I have a FreeCell clone and there was a game from it that I just could not solve. So I wrote a solver which relies mostly on random moves and the solver is able to solve that game pretty quickly. After having put it through some rounds I’ve noticed something: FreeCell games which I find very difficult, the solver solves in a few seconds, but if it’s average or easy game, the solver can take hours to solve the game.

I think the reason for this is that in hard games, there might not be too many options. Solving the game requires making the right move at the right time, resulting in a small number of possible moves. The solver can throw away dead-end options quickly. The opposite being that an easy game might have multiple ways to solve it. This causes the solver to waste a lot of time in trying all of the possible moves at the same time. Since one possible solution doesn’t appear quickly, it keeps working and working on possible solutions.

The one optimization I gave the solver is that it works on moves which send cards to their final piles before trying permutations of states which didn’t increase the number of “finaled” cards. Of course having someway of deciding that a certain move (or even better a set of moves) is more optimal than a random decision would be ideal, but I can’t think of a good way to do that.

After a little more refinement I think I’ll try having my solver take a stab at game 11982.

Categories: Hobbies
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: