5 RANDOMIZE
6 DIM L(7),M(7),S(20,3),P(5)
10  REM- HUNT THE WUMPUS
15  PRINT "INSTRUCTIONS (Y-N)";
20  INPUT I$
25  IF I$[1,1]="N" THEN 35
30  GOSUB 355
35  REM- SET UP CAVE (DODECAHEDRAL NODE LIST)
45  FOR J=1 TO 20
50  FOR K=1 TO 3
55  READ S(J,K)
60  NEXT K
65  NEXT J
70  DATA 2,5,8,1,3,10,2,4,12,3,5,14,1,4,6
75  DATA 5,7,15,6,8,17,1,7,9,8,10,18,2,9,11
80  DATA 10,12,19,3,11,13,12,14,20,4,13,15,6,14,16
85  DATA 15,17,20,7,16,18,9,17,19,11,18,20,13,16,19
110  REM-LOCATE L ARRAY ITEMS
115  REM-H IS THE NUMBER OF 'RESIDENTS'
120  H=7
125  REM-1-YOU,2-WUMPUS,3&4-PITS,5&6-BATS,7-TUMAERO
140  FOR J=1 TO H
145  L(J)=INT(RND(0)*20+1)
150  M(J)=L(J)
155  NEXT J
160  REM-CHECK FOR CROSSOVERS (IE L(1)=L(2),ETC)
165  FOR J=1 TO H
170  FOR K=J TO H
175  IF J=K THEN 185
180  IF L(J)=L(K) THEN 140
185  NEXT K
190  NEXT J
195  REM-SET# ARROWS
200  A=5
205  L=L(1)
210  REM-RUN THE GAME
215  PRINT "HUNT THE WUMPUS"
220  REM-CHECK 'UNUSUAL' CONDITIONS
225  GOSUB 460
230  GOSUB 1020
235 ON F+2 GOTO 300,245,315
240  REM-HAZARD WARNINGS & LOCATION
245  GOSUB 555
250  REM-MOVE OR SHOOT
255  GOSUB 655
260 ON O GOTO 270,285
265  REM-SHOOT
270  GOSUB 700
275  GOTO 290
280  REM-MOVE
285  GOSUB 955
290 ON F+2 GOTO 300,225,315
295  REM-LOSE
300  PRINT "HA HA HA - YOU LOSE!"
305  GOTO 320
310  REM-WIN
315  PRINT "HEE HEE HEE - THE WUMPUS'LL GETCHA NEXT TIME!!"
320  FOR J=1 TO 6
325  L(J)=M(J)
330  NEXT J
331  INPUT "DO YOU WANT TO PLAY AGAIN? ", I$
332  IF UCS(I$) # "Y" THEN END
335  PRINT "SAME SET-UP (Y-N)";
340  INPUT I$
345 IF I$[1,1]#"Y" THEN 140
350  GOTO 200
355  REM-INSTRUCTIONS
360  PRINT
365  PRINT "THIS VERSION (WUMP2) OF 'HUNT THE WUMPUS' IS PLAYED"
370  PRINT "LIKE THE 'NORMAL' VERSION WITH A FEW (CHUCKLE) ADDITIONS"
375  PRINT
380  PRINT "TUMAERO (ANAEROBIC TERMITE) SWARM:  EATS CROOKED ARROWS,"
385  PRINT TAB(10);"ONE ARROW EACH TIME YOU ENTER ITS ROOM."
390  PRINT "WARNING:  'MY ARROWS ARE QUIVERING' WHEN YOU ARE ";
395  PRINT "ONE ROOM AWAY."
400  PRINT
405  PRINT "HAZARDS CAN MOVE!!"
410  PRINT TAB(5);"WUMPUS   - THE WUMPUS SLEEP-WALKS"
415  PRINT TAB(5);"PITS     - EARTHQUAKES CLOSE THE OLD PITS AND";
420  PRINT " FORM NEW ONES"
425  PRINT TAB(5);"BATS     - BAT MIGRATION"
430  PRINT TAB(5);"TUMAEROS - THE TUMAEROS SWARM IN SEARCH OF FOOD"
435  PRINT
440  PRINT "GOOD LUCK!"
445  PRINT
450  RETURN
455  REM-SLEEP-WALKING, EARTHQUAKES, AND BAT MIGRATION
460  PRINT
465  IF INT(RND(0)*12+1)>1 THEN 480
470  PRINT "DON'T BLINK NOW, BUT I HEAR THE WUMPUS SLEEP-WALKING!!"
475  L(2)=INT(RND(0)*20+1)
480  IF INT(RND(0)*12+1)>1 THEN 510
485  PRINT "RUMBLE, RUMBLE - YOU'RE STANDING ON SHAKY GROUND . . ."
490  PRINT TAB(5);"NEW PITS HAVE BEEN FORMED BY THE EARTHQUAKE!!"
495  L(3)=INT(RND(0)*20+1)
500  L(4)=INT(RND(0)*20+1)
505  IF L(4)=L(3) THEN 500
510  IF INT(RND(0)*12+1)>1 THEN 535
515  PRINT "WHAT A FLAP YOU'RE IN . . . IT'S BAT MIGRATION TIME!!"
520  L(5)=INT(RND(0)*20+1)
525  L(6)=INT(RND(0)*20+1)
530  IF L(6)=L(5) THEN 525
535  IF INT(RND(0)*12+1)>1 THEN 550
540  PRINT "BUZZ, BUZZ - THE TUMAEROS ARE SWARMING"
545  L(7)=INT(RND(0)*20+1)
550  RETURN
555  REM-PRINT LOCATION & HAZARD WARNINGS
560  PRINT
565  FOR J=2 TO H
570  FOR K=1 TO 3
575 IF S(L(1),K)#ABS(L(J)) THEN 620
580 ON J-1 GOTO 585,595,595,605,605,615
585  PRINT "I SMELL A WUMPUS!"
590  GOTO 620
595  PRINT "I FEEL A DRAFT"
600  GOTO 620
605  PRINT "BATS NEARBY!"
610  GOTO 620
615  PRINT "MY ARROWS ARE QUIVERING"
620  NEXT K
625  NEXT J
630  L=L(1)
635  PRINT "YOU ARE IN ROOM "L(1)
640  PRINT "TUNNELS LEAD TO "S(L,1);S(L,2);S(L,3)
645  PRINT
650  RETURN
655  REM-CHOOSE OPTION
660  PRINT "SHOOT OR MOVE (S-M)";
665  INPUT I$
670 IF I$[1,1]#"S" THEN 685
675  O=1
680  RETURN
685 IF I$[1,1]#"M" THEN 660
690  O=2
695  RETURN
700  REM-ARROW ROUTINE
705  F=0
710  REM-PATH OF ARROW
720  PRINT "NO. OF ROOMS(1-5)";
725  INPUT J9
730 IF J9<1 THEN 720
735 IF J9>5 THEN 720
740  FOR K=1 TO J9
745  PRINT "ROOM #";
750  INPUT P(K)
755  IF K <= 2 THEN 775
760  IF P(K)#P(K-2) THEN 775
765  PRINT "ARROWS AREN'T THAT CROOKED - TRY ANOTHER ROOM"
770  GOTO 745
775  NEXT K
780  REM-SHOOT ARROW
785  L=L(1)
790  FOR K=1 TO J9
795  FOR K1=1 TO 3
800  IF S(L,K1)=P(K) THEN 875
805  NEXT K1
810  REM-NO TUNNEL FOR ARROW
815  L=S(L,INT(RND(0)*3+1))
820  GOTO 880
825  NEXT K
830  PRINT "MISSED"
835  REM-MOVE WUMPUS
840  GOSUB 915
845  REM-AMMO CHECK
850  A=A-1
855  IF A>0 THEN 865
860  F=-1
865  RETURN
870  REM-SEE IF ARROW IS AT L(1) OR L(2)
875  L=P(K)
880 IF L#L(2) THEN 900
885  PRINT "AHA! YOU GOT THE WUMPUS!"
890  F=1
895  RETURN
900 IF L#L(1) THEN 825
905  PRINT "OUCH! ARROW GOT YOU!"
910  GOTO 860
915  REM-MOVE WUMPUS ROUTINE
920  K=INT(RND(0)*4+1)
925  IF K=4 THEN 935
930  L(2)=S(L(2),K)
935 IF L(2)#L THEN 950
940  PRINT "TSK TSK TSK- WUMPUS GOT YOU!"
945  F=-1
950  RETURN
955  REM- MOVE ROUTINE
960  PRINT "WHERE TO";
965 INPUT L
970 IF L<1 THEN 960
975 IF L>20 THEN 960
980  FOR K=1 TO 3
985  REM- CHECK IF LEGAL MOVE
990  IF S(L(1),K)=L THEN 1020
995  NEXT K
1000  IF L=L(1) THEN 1035
1005  PRINT "NOT POSSIBLE -";
1010  GOTO 960
1015  REM-CHECK FOR HAZARDS
1020  L(1)=L
1025  F=0
1030  REM-WUMPUS
1035 IF L#L(2) THEN 1070
1040  PRINT "... OOPS! BUMPED A WUMPUS!"
1045  REM-MOVE WUMPUS
1050  GOSUB 920
1055  IF F=0 THEN 1070
1060  RETURN
1065  REM-PIT
1070 IF L=L(3) THEN 1080
1075 IF L#L(4) THEN 1100
1080  PRINT "YYYIIIIEEEE . . . FELL IN PIT"
1085  F=-1
1090  RETURN
1095  REM-BATS
1100 IF L=L(5) THEN 1110
1105 IF L#L(6) THEN 1125
1110  PRINT "ZAP--SUPER BAT SNATCH! ELSEWHERESVILLE FOR YOU TURKEY!"
1115  L=INT(RND(0)*20+1)
1120  GOTO 1020
1125 IF L#ABS(L(7)) THEN 1150
1130  IF L(7)<0 THEN 1145
1135  PRINT "CHOMP, CHOMP - THAT WAS A TASTY ARROW"
1140  GOSUB 850
1145  L(7)=-L(7)
1150  RETURN
1155  END