mcfreecell/README.md

1.9 KiB

mcfreecell

mcfreecell on leg-py1.5.2 is a terminal-native FreeCell build aimed at old Python and old curses environments.

This branch keeps the implementation within a Python-1.5.2-friendly subset and favors compatibility over modern terminal features.

Features

  • FreeCell rules with 8 tableau columns, 4 free cells, and 4 foundations
  • keyboard-driven curses interface
  • visual stack selection mode
  • lightweight ? hint system
  • ASCII-only suit tags for old terminals and fonts
  • compatibility fallbacks for weak or incomplete curses implementations

Controls

  • Arrow keys / h j k l - move cursor
  • v - enter or exit tableau selection mode
  • y - pick up selected card or stack
  • p - drop held card or stack
  • Enter / Space - alternate pick up / drop
  • ? - show a suggested move
  • f - quick move selected card to a free cell
  • d - quick move selected card to foundation
  • Esc - cancel held move
  • q - quit

Suits

  • Debian (Deb)
  • Red Hat (RHt)
  • Solaris (Sol)
  • HP-UX (HPx)

These are split into the two FreeCell color groups as:

  • red group: Debian, Red Hat
  • black-equivalent group: Solaris, HP-UX

On older terminals, the non-red group may render as blue, cyan, or plain monochrome depending on curses support.

Running

Run with whatever Python interpreter is available on the target machine:

python linux-freecell.py

Terminal Notes

Terminal and curses behavior can vary significantly on older systems.

  • xterm generally gives the most reliable screen redraw behavior for this branch.
  • Older konsole builds, including KDE 2.x-era versions, may show redraw artifacts or ghosting until the screen is resized.
  • The game includes several repaint fallbacks for weaker curses implementations, but some VT100-style emulator quirks are still terminal-specific.

Status

This branch is intended as a playable legacy-friendly FreeCell build for old Unix-like systems and older Python environments.