FreeCell looks simple until a player tries to move a long descending run and the interface refuses. The useful programming lesson is that a legal “supermove” is not a special card rule. It is a compact way of representing a sequence of ordinary single-card moves through temporary storage.
This article derives a small capacity calculator that can be used in a browser-based FreeCell implementation, a rules explainer, or automated tests.
The basic capacity rule
Let:
F be the number of empty free cells.









