1. Durante o jogo
1.1. Regras
1.1.1. Mover de pilha
1.1.1.1. P1 a P8
1.1.1.1.1. Checar se vamos permitir mover mais que 1 carta aplicando a regra da pilha temporária
1.1.1.1.2. Espaço vazio pode receber qualquer carta
1.1.1.2. PT1 a PT4
1.1.1.2.1. Só uma carta por posição
1.1.1.3. PF1 a PF4
1.1.1.3.1. A primeira carta tem que ser o A
1.1.1.3.2. As cartas tem que ser do mesmo naipe
1.1.2. Geral
1.1.2.1. O número na pilha tem que ser superior
1.1.2.2. Tem que ser de cor diferente
1.1.2.3. Somente pode existir uma carta de cada vez na pilha temporária
1.1.2.4. A carta que esta na pilha temporaria pode ser devolvida para uma das pilhas P1 à P8 desde que a cor seja diferente e o numero menor que o existente na pilha
2. Fim de jogo
2.1. Todas as cartas na PF1, PF2, PF3 e PF4 e na ordem crescente de As à Rei
2.2. Impossibilidade de mover carta para qualquer pilha
2.2.1. A discutir
3. Classes
3.1. Freecell
3.1.1. Metodos
3.1.1.1. string - MoverCarta(PilhaDestino, PilhaOrigem, Quantidade)
3.1.1.2. DistribuiCartas
3.1.1.3. DistribuicaoAleatoria(array[])
3.1.1.4. array[] - CriaArrayCartas()
3.2. Carta
4. Menu
4.1. Novo jogo
4.2. Estatísticas
4.2.1. a definir
4.3. Sair
5. Começo de jogo
5.1. Embaralhar as cartas
5.2. Distribuir as cartas embaralhadas em 8 pilhas
5.2.1. 4 primeiras pilhas com 7 cartas
5.2.2. 4 últimas pilhas com 6 cartas