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