679639df9ff54243244e5ed8c0a94a2f8e3a4caf
Transitions: - Add I-HOUSEWRECK (tick 20) and I-VOGONS (tick 50) timed events to earth.py, queued at startup in main.py - I-VOGONS demolishes Earth and moves player to Vogon Hold - Fix airlock→Dark transition to call Dark room M-ENTER handler - Fix dream-restore to support multiple callbacks (list instead of single) - Add state.finish() call to RAMP for endgame victory Guide system: - Add 16-entry lookup database to GUIDE object (space, towel, vogons, poetry, beast, babel fish, earth, magrathea, marvin, etc.) - "consult guide about X" now returns relevant entry text Tests (79 passing): - test_engine.py (14): containment, flags, articles, clock mechanics - test_parser.py (20): directions, compound verbs, prepositions, synonyms - test_earth.py (21): full opening sequence, puzzles, navigation - test_vogon.py (4): room existence, Hold first-visit sequence - test_dark.py (7): inventory clearing, dream dispatch, probabilities - conftest.py: shared game fixture and send() helper Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The Hitchhiker's Guide to the Galaxy
A Python text adventure engine for the classic 1984 Infocom interactive fiction game, built from the original ZIL source code. The long-term goal is an accessible version for blind players via TTS/STT.
Requirements
- Python 3.12+
- uv
Install & Run
# Clone the repo
git clone https://gitea.smashconsult.be/seppedl/h2g2.git
cd h2g2
# Install dependencies and run
uv run h2g2
Or install it into an environment:
uv pip install -e .
h2g2
You can also run it directly as a module without installing:
uv run python -m h2g2.main
What's playable
The Earth opening sequence: wake up in your bedroom, find your gown and aspirin, make your way downstairs, head to the pub, and meet Ford Prefect.
Project structure
h2g2/
engine/ # Core game engine (parser, object model, game loop)
content/ # Game content (rooms, objects, puzzles)
main.py # Entry point
*.zil # Original ZIL source code (Infocom, 1984)
docs/ # Original game manuals, maps, and story file (.z5)
Description
Languages
Python
100%