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