Compare commits
3 commits
main
...
leg-py1.5.
| Author | SHA1 | Date | |
|---|---|---|---|
| 2600a40280 | |||
| 6ca7417011 | |||
| 0ab0abf6b2 |
2 changed files with 1178 additions and 783 deletions
63
README.md
Normal file
63
README.md
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
# 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
|
||||||
|
- single-step undo for completed moves
|
||||||
|
- 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
|
||||||
|
- `u` - undo the last completed move
|
||||||
|
- `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.
|
||||||
1798
linux-freecell.py
1798
linux-freecell.py
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue