There are many types of moves allowed in FreeCell. Not all are properly
supported by the various games and solvers.
The "atomic move" is the fundamental type of move and it consists of
moving one card to another location. This seems straight-forward enough,
but you have to be careful when moving a card from one column to another
if the move can be interpreted as one of the remaining move types.
A "meta-move" is the next type of move. With it, you can move an ordered
sequence of cards from one column to another through the use of free
cells and empty columns. MS FreeCell limits the number of empty columns
that can be employed this way.
A "supermove" is a turbo-charged meta-move where there are no
limitations on how many empty columns can be used.
My solver only produces atomic moves because it's simpler to handle
logically. If you intend to use the other types of moves in your solver,
then you need to plan carefully on how you intend to implement them.
I've only scratched the surface on information about FreeCell. Michael
Keller has an excellent web site for those interested in learning more
about FreeCell. If you haven't already checked it out, then it would
probably be to your advantage to do so -- if for no other reason than to
catch the discussion on "standard notation".
Good Luck!!!
HELSER ERIC JOSEPH wrote:
> Guess I should make it be able to recognize moveable runs like (6S-5H)
> -> 7H with one FC open so it can recognize larger-scale loops like
> (7H-6S-5H) <-> (7D)... I didn't think I'd need run recognition...
>
> Oh, I got it writing down what it does. Right now I'm using a
> pseudo-stack. Once a legal move is found, it's thrown onto the heap.
> If it's found that that next setup is unplayable, it pops the last
> element in the stack.
Received on Thu Nov 13 2003 - 16:52:19 IST