# Cutthroats (Infocom Release 23, serial 840809, Z-machine V3) # VERIFIED COMPLETE SOLVE: 250/250, won=True, died=False # # Reproduce with the RNG-pinned replay harness (free, no API): # cd ~/src/zwalker # python3 scripts/replay_solve.py games/zcode/cutthroats.z3 walkthroughs/cutthroats_verified_250.txt --seeds 4 # => cutthroats_verified_250.txt: VERIFIED 250/250 at seed 1 | 264 cmds | died=False | won=True # # Ending: the Leviathan route, complete. You surface beside the Night Wind # with the sealed glass case of priceless postage stamps; the crew # congratulate you ("Good job, matey!") and you sail home rich, thinking # of Hevlin - 250/250, "the rank of a rich diver", at 6:56 AM on day two. # The route survives every trap on the schedule: breakfast at The Shanty # by 8:30, the 9:20 lighthouse meeting, $500 from Mariners' Trust with the # passbook returned to the dresser (McGinty must never see it), money # shown to Johnny at Point Lookout at 10:41, the boat share paid at # Outfitters (share amount is RNG-rolled, so the route pays with a # generic "give money to salesman"), the 11:45 Shanty meeting, the # noon Weasel-McGinty betrayal, the envelope stolen from McGinty's office # through the back window while he's out (12:41-12:46), coordinates # (lat 25 / long 25) given the minute Johnny asks at 2:30 PM, sleep # through the 2:45 PM sailing, the envelope shown to Johnny at 5:52 AM # (skip this and the Weasel cuts your throat on the way home), shark # repellent opened at the exact dive depth the shark appears, the loose # mine lifted clear with the electromagnet, the tankless crawl through # the narrow passage to drill the purser's safe, and the leaking stamp # case drained and puttied in the air-pocket compartment. # # Cutthroats is a V3 "time" game: the status-line globals hold the clock # (starting 8:00 AM, 1 turn = 1 minute), not the score. The true score # lives in the game's own RATING global (variable 132, max in RATING-MAX # = variable 130 = 250) - zwalker's get_score() knows this via a # per-build override in zmachine.py; the turns slot maps to PRESENT-TIME # (variable 215), the master minutes-since-midnight clock, because the # game counts no moves at all. # # Why a pinned seed: the game rolls RANDOM(2) at the second (lighthouse) # meeting to pick which wreck you salvage (events.zil, I-SECOND-MEETING: # gold coin -> Sao Vera, dinner plate -> Leviathan), so the whole dive # route depends on the seed - seed 1 rolls the dinner plate and this # recording is the matching Leviathan/Night Wind route. Other draws the # fixed pacing absorbs: the boat-share amount (50+RANDOM(50), $71 at # seed 1), Johnny's shove-off re-ask timer (30+RANDOM(10) - miss the # 2:30 PM ask past 3:30 PM and the deal dies), the shark's appearance # depth on the descent, the dive-time air budget (165+RANDOM(15)), and # NPC/delivery pacing. The roll happens mid-game, well after the seed # pin, so no restart prelude is needed. Wreck mechanics verified against # the official ZIL source (github.com/historicalsource/cutthroats); # route machine-played step by step on the GameWalker pathway at seed 1. # # Generated by hand-built machine-play through GameWalker (scratchpad # driver ct_drive.py, RNG seed 1); replay-verified by # scripts/replay_solve.py. # #% MAX_SCORE: 250 #% WIN_TEXT: hope his soul is resting a little easier # # --- day one: 8:00 AM, your room at the Red Boar Inn --- wind watch stand get note read note drop note open dresser get key open door out close door lock door down north east east east east south # --- The Shanty: breakfast and Johnny's offer --- sit down order food eat meal order water drink water wait wait wait yes yes stand north west west west west southwest southwest northwest # --- lighthouse meeting: the wreck is revealed (dinner plate = Leviathan) --- wait wait wait wait wait wait wait wait wait wait wait wait southeast northeast northeast south up unlock door open door south get passbook north close door lock door down north east east east east southeast south south southwest north withdraw $500 south northeast north north northwest west west west west south up unlock door open door south put passbook in dresser north close door lock door down north east east east east southeast south south southeast # --- Point Lookout: show Johnny the money (Leviathan is under 200 ft) --- wait wait wait wait show money to johnny no northwest north north northwest west south # --- Outfitters: wait out McGinty, pay the share, buy the dive kit --- wait wait wait wait wait read price list give money to salesman buy flashlight buy shark repellent buy putty buy c battery buy electromagnet rent air compressor # --- 11:45 Shanty meeting (and a drink) --- north east south order water drink water wait wait wait # --- back alley: steal the envelope from McGinty's office --- north southeast southwest west west west look through window wait look through window wait look through window wait look through window open window enter window get envelope enter window close window # --- fetch the scuba gear, board the Night Wind --- east north north west west south up unlock door open door south get wet suit get air tank get mask get flippers north close door lock door down north east east north west northwest down put envelope under bunk # --- 2:30 PM: Johnny asks for the coordinates; sleep through the sailing --- wait 60 minutes wait 60 minutes wait 60 minutes wait 60 minutes wait 60 minutes wait 60 minutes johnny, latitude is 25 johnny, longitude is 25 wait wait lie down wait wait wait wait # --- day two, 5:46 AM, at the wreck site --- stand get envelope south south south show envelope to johnny north up look down north eat drink north north # --- storage locker: fill tank, battery in drill, gear up --- fill tank with compressor get c battery open drill put c battery in drill close drill wear wet suit wear flippers wear mask wear tank get flashlight get canister get putty get drill get magnet south south south up # --- the dive --- turn on flashlight dive dive open canister dive down down south open door south put magnet on mine turn on magnet drop magnet up remove tank south south turn on drill drill safe with drill turn off drill get case north north wear tank down north up turn on drill drill case with drill open putty put putty on crack down north up up up up up