the-infocom-files/hitchhiker

You can finish the game without finding all the tools

Opened this issue · 0 comments

When you get a vision of which tool Marvin will ask for at the final puzzle, the game tries to pick one that isn't aboard the Heart of Gold. I say "tries", because there is no guarantee that it will succeed. See FRUIT-F:

<GLOBAL TOOL-LIST
	<PLTABLE
	 SCREWDRIVER
	 WRENCH
	 CHISEL
	 AWL
	 PLIERS
	 TWEEZERS
	 PINCER
	 RASP
	 CHIPPER
	 TOOTHBRUSH>>
	       (<VERB? EAT>
		<REPEAT ()
			<SETG TOOL-REQUIRED <PICK-ONE ,TOOL-LIST>>
			<SET X <+ .X 1>>
			<COND (<OR <NOT <IN-HEART? ,TOOL-REQUIRED>>
				   <G? .X 50>>
			       <RETURN>)>>

So there are ten tools, and it makes 50 attempts at picking one at random to find one that's not aboard the ship. If I have my probabilities straight, if you have nine of the tools there's a (9/10)^50 ~= 0.5% chance that it won't pick the missing tool.

Some games use a more elaborate random picker (see PICK-ONE in zork-subtrate) that I think guarantees that it will pick all the available elements once before it starts repeating itself. (Note that this version requires there to be an extra element at the start of the table.)

But I'm not suggesting that this should be changed, because... well, I kind of like it that the game has this tiny chance of being merciful. However, when RAMP-F prints the final text of the game it assumes that you picked up the toothbrush at the start of the game. And now it turns out that this isn't necessarily the case.

So perhaps, just as an obscure Easter egg, it should check if TOOTHBRUSH has TOUCHBIT or not?