A version of Hunt the Wumpus. You move through a cave of 20 rooms joined like the corners of a dodecahedron, each with tunnels to three others, looking for the Wumpus. Two rooms have bottomless pits and two have superbats that carry you to a random room. Warnings tell you when the Wumpus (“I SMELL A WUMPUS”), a pit (“I FEEL A DRAFT”) or bats are next door. You have five crooked arrows, each of which can be sent through up to five rooms that you name; hit the Wumpus to win, but shoot yourself, run out of arrows, fall in a pit or wake the Wumpus into your room and you lose.
After a game you can replay the same cave layout or a new one. Keys are single presses: S to shoot, M to move, Q to quit, then room numbers. The instructions are paged, and the screen has large block-graphic “WUMPUS” title art.
The program came from a Larken disk, where it is WUMPUS.B1; it is listed with the other programs on LogiCall (Larken Edition).
Program Analysis
Program Structure
- Lines 10–100: welcome and instructions question, with joke replies for several keys.
- Lines 110–200: the cave as a 20×3 table of connected rooms from
DATA, and random positions for you, the Wumpus, two pits and two bat rooms inL(), copied toM()for a replay; lines 210–340 re-roll if any two coincide. - Lines 360–660: the game loop and win/lose handling.
- Lines 1000–1410: instructions; 2000–2160 warnings and location; 2500 key choice; 3000–3440 arrows and Wumpus movement; 4000–4310 moving and hazards; 4500–4670 room-number input; 6000–6020 title graphics.
Notable Techniques
DEF FNfunctions give a random room (1–20), a random tunnel (1–3) and the Wumpus’s move (1–4, where 4 means it stays put).- Room numbers are entered without ENTER: the routine at 4570 waits briefly for a second digit only if the first is 1 or 2, using the frame counter at 23672/23673 as a timer.
- An arrow aimed down a tunnel that doesn’t exist goes down a random one instead (line 3190), as in the original game.
- The win screen scrolls a message through a 16-character window with string slicing (
W$(I TO I+15)). POKE 23659,0andPOKE 23659,2(DF SZ) let the program print on the bottom two lines and then restore them.
Potential Issues
- The tape autostarts at line 9 (the save line says
LINE 10), which skips line 5, wherePOKE 23658,8turns on CAPS LOCK. The program compares keys with capital letters such as"S"and"M", so after loading from tape the keys appear not to respond unless CAPS LOCK is switched on first. - After a win, “SAME SET UP?” does not restore the original positions, because the copy back from
M()(lines 560–580) is only done after a loss. - Any answer other than N to the instructions question, including Y, shows the instructions; the replies are only jokes.
- Line 4540 jumps to line 4510, which doesn’t exist; it lands on 4520 and works.
- The constant in
LET F=-1at line 3430 is stored as a tiny number instead of 1, soFbecomes almost zero but still negative, which the program treats as a loss, as intended.
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.