# Zork III — "The Dungeon Master" (Infocom Release 25, serial 860811, Z-machine V3) # VERIFIED COMPLETE SOLVE: 7/7 potential, won=True, died=False # # Reproduce with the RNG-pinned replay harness (free, no API): # cd ~/src/zwalker # python3 scripts/replay_solve.py games/zcode/zork_iii.z3 walkthroughs/zork3_verified_7.txt --seeds 3 # => zork3_verified_7.txt: VERIFIED 7/7 at seed 1 | 216 cmds | died=False | won=True # # Zork III scores "potential" out of 7; the game is won by entering the Treasury # of Zork, where the Dungeon Master transforms you ("...you have at last # completed your quest in ZORK"). All 7 points are on this route's timeline: # enter the lake, touch the viewing table, reach the Cliff Ledge, encounter the # hooded figure, attack it, time-travel with the dial at 776, and push a # sandstone wall in the Royal Puzzle. # # Why a pinned seed: Zork III is heavily randomized — the earthquake fires on a # random turn in [71,140] (and permanently breaks the aqueduct, which must be # walked BEFORE it), the Viking ship appears exactly once (20%/turn, visible 2 # turns) for the "hello sailor" vial, the amulet grab is 50% per try under a # 3-turn air / ~7-turn hypothermia clock, the hooded-figure sword fight rolls # every blow both ways and must end at exactly "badly hurt and defenseless" # (killing it destroys the hood and cloak), and the old man is present 30% per # room entry. The harness pins the interpreter RNG (vm.rng.seed) so this # command sequence threads every gate deterministically at seed 1. # # Route: lake-first (aqueduct before the quake), grue-repellent can as the # light-beam block, and the pole-down mirror-box ride past the Guardians of # Zork (no invisibility potion needed). Mechanics cross-checked against the # official Zork III ZIL source (github.com/historicalsource/zork3): the quake # timer (70+RANDOM(70)), the mirror box MDIR=270 start facing, the 7-turn # mirror-panel unlock, the 40-move time-machine snap-back, and the cell-4 # bronze-door endgame. Generated by scripts/solve_zork3_adaptive.py, which # plays the route adaptively under a pinned seed and records the command list. take lamp turn on lamp south south south south turn off lamp drop lamp enter lake dive take object take object west south get torch wait wait wait touch table get can wait wait touch table drop torch wait north enter lake dive get can get can south spray repellent on me south south east get key raise manhole cover down north north north get torch west west west get bread down get chest wait tie chest to rope wait wait wait grab rope down down south wait wait hello sailor get vial east wait wait wait attack figure attack figure attack figure attack figure take hood take cloak ne ne north east south east east south south east north push gold machine south open stone door push gold machine east turn dial to 776 sit on seat push button take ring wait wait wait open door west open wooden door north put ring under seat sit on seat turn dial to 948 push button look under seat stand open wooden door south open stone door east get all west south down push east wall s s se push south wall n ne push south wall take book push south wall e ne push west wall sw nw ne push south wall sw push east wall ne push south wall nw n n n push east wall sw s se ne n push west wall nw push south wall again w nw nw push south wall se se se ne push west wall again sw push north wall again again nw up inventory north west north north west west north east ne sw ne sw ne wake man give bread to man open secret door north north drop can south press button north north north raise short pole push yellow wall push yellow wall lower short pole push mahogany wall push mahogany wall push mahogany wall raise short pole push white wall push white wall push white wall push white wall push pine wall north knock on door north east north north turn dial to 4 press button south open cell door south master, go to the parapet master, turn the dial to 1 master, push the button unlock bronze door with key open bronze door south