# 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: ```sh 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.