E000R LOMEM=1024 HIMEM=16384 5 REM CONVERTED TO REPLICA 1 BY VINCE BRIEL 2/19/2006 10 PRINT " WUMPUS" 20 PRINT " CREATIVE COMPUTING MORRISTOWN, NJ" 22 PRINT 24 PRINT 26 PRINT 30 PRINT "INSTRUCTIONS (Y-N)"; 40 INPUT I$ 50 IF I$="N" THEN 60 55 GOSUB 1000 60 REM - SET UP CAVE (DODECAHEDRAL NODE LIST) 70 DIM S(60) 75 Z1=0 80 FOR J=1 TO 20 90 FOR K=1 TO 3 95 X1=PEEK (768+Z1) 96 Y1=(20*K+J)-20 100 S(Y1)=X1 110 Z1=Z1+1:NEXT K 120 NEXT J 130 REM DATA 2,5,8,1,3,10,2,4,12,3,5,14,1,4,6 140 REM DATA 5,7,15,6,8,17,1,7,9,8,10,18,2,9,11 150 REM DATA 10,12,19,3,11,13,12,14,20,4,13,15,6,14,16 160 REM DATA 15,17,20,7,16,18,9,17,19,11,18,20,13,16,19 170 REM DEF FNA(X)=INT(20*RND(1))+1 180 REM DEF FNB(X)=INT(3*RND(1))+1 190 REM DEF FNC(X)=INT(4*RND(1))+1 200 REM - LOCATE L ARRAY ITEMS 210 REM - 1-YOU,2-WUMPUS,3&4-PITS,5&6-BATS 220 DIM L(6),M(6) 230 FOR J=1 TO 6 240 L(J)=RND(20)+1 260 M(J)=L(J) 270 NEXT J 280 REM - CHECK FOR CROSSOVERS (IE L(1)=L(2) ETC) 290 FOR J=1 TO 6 300 FOR K=J TO 6 310 IF J=K THEN 330 320 IF L(J)=L(K) THEN 240 330 NEXT K 340 NEXT J 350 REM - SET# ARROS 360 A=5 365 L=L(1) 370 REM - RUN THE GAME 375 PRINT "HUNT THE WUMPUS" 380 REM - HAZARD WARNINGS & LOCATIONS 390 GOSUB 2000 400 REM - MOVE OR SHOOT 410 GOSUB 2500 420 GOTO 400+(O*40):REM ON O GOTO 440,480 430 REM - SHOOT 440 GOSUB 3000 450 IF F=0 THEN 370 460 GOTO 500 470 REM - MOVE 480 GOSUB 4000 490 IF F=0 THEN 390 500 IF F>0 THEN 550 510 REM - LOSE 520 PRINT "HA HA HA - YOU LOSE!" 530 GOTO 560 540 REM - WIN 550 PRINT "HEE HEE HEE - THE WUMPUS'LL GETCHA NEXT TIME!!" 560 FOR J=1 TO 6 570 L(J)=M(J) 580 NEXT J 590 PRINT "SAME SET-UP (Y-N)"; 600 INPUT I$ 610 IF I$#"Y" THEN 230 620 GOTO 360 1000 REM - INSTRUCTIONS 1010 PRINT "WELCOME TO 'HUNT THE WUMPUS'" 1020 PRINT " THE WUMPUS LIVES IN A CAVE OF 20 ROOMS. EACH ROOM" 1030 PRINT "HAS 3 TUNNELS LEADING TO OTHER ROOMS. (LOOK AT A" 1040 PRINT "DODECAHEDRON TO SEE HOW THIS WORKS-IF YOU DON'T KNOW" 1050 PRINT "WHAT A DODECHADRON IS, ASK SOMEONE)" 1060 PRINT 1070 PRINT " HAZARDS:" 1080 PRINT "BOTTOMLESS PITS - TWO ROOMS HAVE BOTTOMLESS PITS IN THEM" 1090 PRINT " IF YOU GO THERE, YOU FALL INTO THE PIT (& LOSE!)" 1100 PRINT "SUPER BATS - TWO OTHER ROOMS HAVE SUPER BATS. IF YOU" 1110 PRINT " GO THERE, A BAT GRABS YOU AND TAKES YOU TO SOME OTHER" 1120 PRINT " ROOM AT RANDOM. (WHICH MIGHT BE TROUBLESOME)" 1130 PRINT 1140 PRINT " WUMPUS:" 1150 PRINT "THE WUMPUS IS NOT BOTHERED BY THE HAZARDS (HE HAS SUCKER" 1160 PRINT "FEET AND IS TOO BIG FOR A BAT TO LIFT). USUALLY" 1170 PRINT "HE IS ASLEEP. TWO THINGS THAT WAKE HIM UP: YOUR ENTERING" 1180 PRINT "HIS ROOM OR YOUR SHOOTING AN ARROW." 1190 PRINT " IF THE WUMPUS WAKES, HE MOVES (P=.75) ONE ROOM" 1200 PRINT "OR STAYS STILL (P=.25). AFTER THAT, IF HE IS WHERE YOU" 1210 PRINT "ARE, HE EATS YOU UP (& YOU LOSE!)" 1220 PRINT 1230 PRINT " YOU:" 1240 PRINT "EACH TURN YOU MAY MOVE OR SHOOT A CROOKED ARROW" 1250 PRINT " MOVING: YOU CAN GO ONE ROOM (THRU ONE TUNNEL)" 1260 PRINT " ARROWS: YOU HAVE 5 ARROWS. YOU LOSE WHEN YOU RUN"; 1265 PRINT " OUT." 1270 PRINT " EACH ARROW CAN GO FROM I TO 5 ROOMS. YOU AIM BY"; 1275 PRINT " TELLING" 1280 PRINT " THE COMPUTER THE ROOMS YOU WANT THE ARROW TO GO TO." 1290 PRINT " IF THE ARROW CAN'T GO THAT WAY (IE NO TUNNEL) IT"; 1295 PRINT " MOVES" 1300 PRINT " AT RANDOM TO THE NEXT ROOM." 1310 PRINT " IF THE ARROW HITS THE WUMPUS, YOU WIN." 1320 PRINT " IF THE ARROW HITS YOU, YOU LOSE." 1330 PRINT 1340 PRINT " WARNINGS:" 1350 PRINT " WHEN YOU ARE ONE ROOM AWAY FROM WUMPUS OR HAZARD," 1360 PRINT " THE COMPUTER SAYS:" 1370 PRINT "WUMPUS- 'I SMELL A WUMPUS'" 1380 PRINT "BAT - 'BATS NEARBY'" 1390 PRINT "FIT - 'I FEEL A DRAFT'" 1400 PRINT 1410 RETURN 2000 REM - PRINT LOCATION & HAZARD WARNINGS 2010 PRINT 2020 FOR J=2 TO 6 2030 FOR K=1 TO 3 2031 X1=L(1) 2035 IF S((20*K+X1)-20)<>L(J) THEN 2110 2040 REM WAS IF S(L(1),K)<>L(J) THEN 2110 2042 IF J-1=1 THEN 2060 2043 IF J-1=2 THEN 2080 2044 IF J-1=3 THEN 2080 2045 IF J-1=4 THEN 2100 2046 IF J-1=5 THEN 2100 2050 REM WAS ON J-1 GOTO 2060,2080,2080,2100,2100 2060 PRINT "I SMELL A WUMPUS!" 2070 GOTO 2110 2080 PRINT "I FEEL A DRAFT!" 2090 GOTO 2110 2100 PRINT "BATS NEARBY!" 2110 NEXT K 2120 NEXT J 2130 PRINT "YOU ARE IN ROOM ";L(1) 2132 X1=S((20*1+L)-20):REM COULD BE S(L) 2133 Y1=S((20*2+L)-20):REM COULD BE S(20+L) 2135 Z1=S((20*3+L)-20):REM COULD BE S(40+L) 2138 PRINT "TUNNELS LEAD TO ";X1;", ";Y1;", AND ";Z1 2140 REM WAS PRINT "TUNNELS LEAD TO ";S(L,1);S(L,2);S(L,3) 2150 PRINT 2160 RETURN 2500 REM - CHOOSE OPTION 2510 PRINT "SHOOT OR MOVE (S-M)"; 2520 INPUT I$ 2530 IF I$#"S" THEN 2560 2540 O=1 2550 RETURN 2560 IF I$#"M" THEN 2510 2570 O=2 2580 RETURN 3000 REM - ARROW ROUTINE 3010 F=0 3020 REM - PATH OF ARROW 3030 L=L(1) 3040 PRINT "NO. OF ROOMS(1-5)"; 3050 INPUT J1 3060 IF J1<1 OR J1>5 THEN 3040 3070 FOR K=1 TO J1 3080 PRINT "ROOM #"; 3090 INPUT P(K) 3095 IF K<=2 THEN 3115 3100 IF P(K)<>P(K-2) THEN 3115 3105 PRINT "ARROWS AREN'T THAT CROOKED - TRY ANOTHER ROOM" 3110 GOTO 3080 3115 NEXT K 3120 REM - SHOOT ARROW 3140 FOR K=1 TO J1 3150 FOR K1=1 TO 3 3155 IF S((20*K1+L))-20=P(K) THEN 3295 3160 REM WAS IF S(L,K1)=P(K) THEN 3295 3170 NEXT K1 3180 REM - NO TUNNEL FOR ARROW 3181 X1=RND(3)+1 3185 L=S((20*X1+L)-20) 3190 REM WAS L=S(L,FNB(1)) 3200 GOTO 3300 3210 NEXT K 3220 PRINT "MISSED" 3225 L=L(1) 3230 REM - MOVE WUMPUS 3240 GOSUB 3370 3250 REM - AMMO CHECK 3255 A=A-1 3260 IF A>0 THEN 3280 3270 F=-1 3280 RETURN 3290 REM - SEE IF ARROW IS AT L(1) OR L(2) 3295 L=P(K) 3300 IF L<>L(2) THEN 3340 3310 PRINT "AHA! YOU GOT THE WUMPUS!" 3320 F=1 3330 RETURN 3340 IF L<>L(1) THEN 3210 3350 PRINT "OUCH! ARROW GOT YOU!" 3360 GOTO 3270 3370 REM - MOVE WUMPUS ROUTINE 3375 K=RND(4)+1 3380 REM WASK=FNC(0) 3390 IF K=4 THEN 3410 3391 X1=L(2) 3395 L(2)=S((20*K+X1)-20) 3400 REM WAS L(2)=S(L(2),K) 3410 IF L(2)<>L THEN 3440 3420 PRINT "TSK TSK TSK - WUMPUS GOT YOU!" 3430 F=-1 3440 RETURN 4000 REM - MOVE ROUTINE 4010 F=0 4020 PRINT "WHERE TO"; 4030 INPUT L 4040 IF L<1 OR L>20 THEN 4020 4050 FOR K=1 TO 3 4060 REM - CHECK IF LEGAL MOVE 4065 X1=L(1) 4069 IF S((20*K+X1)-20)=L THEN 4130 4070 REM WAS IF S(L(1),K)=L THEN 4130 4080 NEXT K 4090 IF L=L(1) THEN 4130 4100 PRINT "NOT POSSIBLE -"; 4110 GOTO 4020 4120 REM - CHECK FOR HAZARDS 4130 L(1)=L 4140 REM - WUMPUS 4150 IF L<>L(2) THEN 4220 4160 PRINT "... OOPS! BUMPED A WUMPUS!" 4170 REM - MOVE WUMPUS 4180 GOSUB 3380 4190 IF F=0 THEN 4220 4200 RETURN 4210 REM - PIT 4220 IF L<>L(3) AND L<>L(4) THEN 4270 4230 PRINT "YYYIIIIEEEE . . . FELL IN PIT" 4240 F=-1 4250 RETURN 4260 REM - BATS 4270 IF L<>L(5) AND L<>L(6) THEN 4310 4280 PRINT "ZAP--SUPER BAT SNATCH! ELSEWHEREVILLE FOR YOU!" 4290 L=RND(20)+1 4300 GOTO 4130 4310 RETURN 5000 END RUN