The idea
Give a player a small world worth exploring. They must collect clues, manage limited supplies and choose a route to the vault; returning to a room should remember what they changed.
See this learning levelWhat you will build
- A map of linked rooms, with descriptions that change after a puzzle is solved.
- An inventory where keys unlock specific doors and usable items cannot be spent twice.
- A turn loop with help, inspect, move and use commands, plus clear win and lose states.
How it fits together
Keep room connections and item descriptions in dictionaries. Separate reading commands, applying game rules and printing the result into functions; store the current room, inventory and solved puzzles in one game state.
Build milestones
Draw the world
Plan six connected rooms, two alternative routes and three puzzles. Write a walkthrough proving that the vault is reachable.
Build the explorer
Implement the input loop and movement. Explain unknown commands and blocked exits without ending the game.
Connect the puzzles
Add item collection, locked passages and a supply counter. Make each puzzle update the world in a visible way.
Playtest and balance
Ask someone to follow the clues, record where they get stuck, then adjust hints and publish a short player guide.
How you will know it works
- An invalid command leaves the room, supplies and inventory unchanged.
- A collected key appears once and unlocks only its matching door.
- Both planned routes can reach an ending; restart clears every puzzle and item.
What you will finish with
A playable local Python adventure, a world map, a test walkthrough and a README explaining the rules.
Take it further
Add a save file and validate its contents before restoring a game.