1 PRINT "FOR HELP TYPE 'HELP WUMPUS' AS AN OS8 COMMAND" 2 PRINT "ENTER A RANDOM NUMBER"; 3 INPUT M 4 PRINT "HERE WE GO----" 5 PRINT "DOWN" 6 PRINT " O" 7 PRINT " W" 8 PRINT "DOWN" 9 PRINT 10 DIM A(20),B(20),C(20),D(20) 20 DIM Q$(20),P$(10) 25 READ Q$ 30 RANDOMIZE 40 FOR Z=1 TO 20 50 A(Z)=0 60 B(Z)=0 70 C(Z)=0 80 D(Z)=0 90 NEXT Z 100 R0=.02 105 B0=0 110 L0=0 120 FOR Z=1 TO 20 130 IF A(Z)<>0 GOTO 190 140 F=INT(20*RND(0))+1 150 IF F=Z GOTO 140 160 IF A(F)<>0 GOTO 140 170 A(Z)=F 180 A(F)=Z 190 NEXT Z 200 FOR Z=1 TO 20 210 IF B(Z)<>0 GOTO 280 220 F=INT(20*RND(0))+1 230 IF F=Z GOTO 220 240 IF A(Z)=F GOTO 220 250 IF B(F)<>0 GOTO 220 260 B(Z)=F 270 B(F)=Z 280 NEXT Z 290 FOR X=1 TO 20 300 IF D(X)<>0 GOTO 410 310 IF X=1 GOTO 340 320 B(Y)=X 330 B(X)=Y 340 Y=X 350 D(Y)=1 360 Y=A(Y) 370 D(Y)=1 380 IF B(Y)=X GOTO 410 390 Y=B(Y) 400 GOTO 350 410 D(X)=0 420 NEXT X 430 B(Y)=1 440 B(1)=Y 450 FOR Z=1 TO 20 460 IF C(Z)<>0 GOTO 540 470 F=INT(20*RND(0))+1 480 IF F=Z GOTO 470 490 IF F=A(Z) GOTO 470 500 IF F=B(Z) GOTO 470 510 IF C(F)<>0 GOTO 470 520 C(Z)=F 530 C(F)=Z 540 NEXT Z 550 FOR X=1000 TO 10000 STEP 9000 560 FOR Z=1 TO 3 570 F=INT(20*RND(0))+1 580 IF D(F)>=X GOTO 570 590 D(F)=D(F)+X 600 GOSUB 2130 610 NEXT Z 620 NEXT X 630 F=INT(20*RND(0))+1 640 X=100000 650 D(F)=D(F)+X 660 GOSUB 2130 670 W=F 680 F=A(W) 690 GOSUB 2130 700 F=B(W) 710 GOSUB 2130 720 F=C(W) 730 GOSUB 2130 740 H=INT(20*RND(0))+1 750 IF D(H)>=1000 GOTO 740 760 FOR S=5 TO 1 STEP -1 770 IF L0=0 GOTO 777 772 GOSUB 1740 774 PRINT "I SEE THAT TUNNELS A B AND C LEAD TO ROOMS"; 776 PRINT A(H);B(H);"AND";C(H);"RESPECTIVELY" 777 IF RND(0)>.04 GOTO 779 778 GOSUB 2191 779 J=D(H) 780 IF J>=1000 GOTO 1240 790 GOTO 1090 800 IF J=0 GOTO 890 810 IF J=INT(J/10)*10 GOTO 830 820 PRINT "I HEAR SQUEAKING, "; 830 J=INT(J/10) 840 IF J=INT(J/10)*10 GOTO 860 850 PRINT "I FEEL A DRAFT, "; 860 IF J<10 GOTO 880 870 PRINT "I SMELL A WUMPUS"; 880 PRINT 890 PRINT "YOU ARE IN ROOM";H;" MOVE THROUGH TUNNEL"; 895 H1=H 900 INPUT P$ 910 IF P$<>"A" GOTO 940 920 H=A(H) 930 GOTO 770 940 IF P$<>"B" GOTO 970 950 H=B(H) 960 GOTO 770 970 IF P$<>"C" GOTO 1000 980 H=C(H) 990 GOTO 770 1000 IF P$="SHOOT" GOTO 1470 1010 IF P$<>"MAP" GOTO 1040 1020 GOSUB 2200 1030 GOTO 779 1040 IF P$<>"LIGHTS ON" GOTO 1070 1050 L0=1 1060 GOTO 770 1070 IF P$<>"LIGHTS OFF" GOTO 770 1075 L0=0 1080 GOTO 770 1090 IF RND(0)>R0 GOTO 800 1100 PRINT "YOU TRIPPED ON A ";Q$;" IN ROOM";H; 1110 F=INT(20*RND(0))+1 1120 IF F=A(H) GOTO 1150 1130 IF F=B(H) GOTO 1150 1140 IF F<>C(H) GOTO 1110 1145 IF F=H GOTO 1110 1150 PRINT "AND HAVE TUMBLED INTO ROOM";F 1160 IF R0<.2 GOTO 1190 1165 IF RND(0)<.5 GOTO 1190 1170 PRINT "YOU ARE GETTING CLUMSIER BY THE MINUTE" 1180 PRINT "YOU SEEM TO BE STUMBLING AROUND";R0*100;"% OF THE TIME" 1190 R0=R0+.02 1200 H=F 1210 IF D(H)>=100000 GOTO 1430 1220 GOSUB 1740 1230 GOTO 770 1240 J=INT(J/1000) 1250 IF J>=10 GOTO 1300 1260 PRINT "THERE IS A SUPER-BAT IN ROOM";H;". FLAP--FLAP OUCH!!" 1270 H=INT(20*RND(0))+1 1280 IF D(H)>999 GOTO 1270 1283 IF H=H1 GOTO 1270 1290 GOTO 770 1300 IF J>=100 GOTO 1430 1310 PRINT "YOU FELL INTO THE BOTTOMLESS PIT IN ROOM";H 1320 IF J-10<>0 GOTO 2050 1330 IF D(H)<>INT(D(H)/10)*10 GOTO 2070 1340 PRINT "PLAY AGAIN (YES OR NO)"; 1350 RESTORE 1360 INPUT P$ 1370 PRINT 1380 IF P$="YES" GOTO 40 1390 IF P$<>"MAP" GOTO 1420 1400 GOSUB 2200 1410 GOTO 1340 1420 STOP 1430 PRINT "YOU HAVE BEEN DEVOURED BY THE WUMPUS IN ROOM";H 1440 GOTO 1340 1450 PRINT "YOU SHOT YOURSELF" 1460 GOTO 1340 1470 PRINT "THE ARROW ZINGS IN"; 1480 K=H 1490 K1=H 1500 FOR R=1 TO 5 1510 PRINT "TO ROOM "; 1520 INPUT M 1530 IF M=A(K) GOTO 1600 1540 IF M=B(K) GOTO 1600 1550 IF M=C(K) GOTO 1600 1560 IF M=0 GOTO 1700 1570 R=6 1580 M=INT(20*RND(0))+1 1590 GOTO 1530 1600 IF R<=5 GOTO 1626 1620 PRINT "THE ARROW WENT ASTRAY" 1624 GOTO 1630 1626 IF M=K1 GOTO 1570 1630 IF M=H GOTO 1450 1640 IF D(M)<100000 GOTO 1670 1650 PRINT "YOU HAVE SLAIN THE WUMPUS" 1655 S=S-1 1660 GOTO 1340 1670 IF INT(D(M)/1000)=INT(D(M)/10000)*10 GOTO 1678 1671 PRINT "YOU PICKED OFF AN INNOCENT SUPER-BAT" 1672 X=-1000 1673 F=M 1674 GOSUB 2130 1675 D(M)=D(M)-1000 1676 B0=B0+1 1677 GOTO 1700 1678 K1=K 1680 K=M 1690 NEXT R 1700 GOSUB 1740 1710 NEXT S 1720 PRINT "YOU HAVE EXHAUSTED YOUR SUPPLY OF ARROWS -- THE SHOW'S OVER" 1730 GOTO 1340 1740 IF RND(0)>.5 GOTO 2000 1750 PRINT "ROAR**THUD**THUD**RRUUMMBBLLEE**THWUMP**ZZZZZZZZZZZ" 1760 X=-100000 1770 F=W 1780 GOSUB 2130 1790 F=A(W) 1800 GOSUB 2130 1810 F=B(W) 1820 GOSUB 2130 1830 F=C(W) 1840 GOSUB 2130 1850 D(W)=D(W)-100000 1860 F=INT(20*RND(0))+1 1870 IF F=A(W) GOTO 1900 1880 IF F=B(W) GOTO 1900 1890 IF F<>C(W) GOTO 1860 1900 X=100000 1910 D(F)=D(F)+X 1920 W=F 1930 GOSUB 2130 1940 F=A(W) 1950 GOSUB 2130 1960 F=B(W) 1970 GOSUB 2130 1980 F=C(W) 1990 GOSUB 2130 2000 READ Q$ 2010 IF Q$<>"END" GOTO 2040 2020 RESTORE 2030 GOTO 2000 2040 RETURN 2050 PRINT "YOU HAVE BEEN SNATCHED UP BY A SUPER-BAT" 2060 GOTO 1270 2070 PRINT "THERE IS A BAT IN AN ADJACENT ROOM -- HE'S FLYING THIS WAY!" 2080 IF RND(0)>.25 GOTO 2110 2090 PRINT "YOU STRUCK YOUR HEAD ON A ";Q$;" GOOD-BYYEEE" 2100 GOTO 1340 2110 PRINT "PHEWWW!!! "; 2120 GOTO 2050 2130 F1=A(F) 2140 D(F1)=D(F1)+X/1000 2150 F1=B(F) 2160 D(F1)=D(F1)+X/1000 2170 F1=C(F) 2180 D(F1)=D(F1)+X/1000 2190 RETURN 2191 IF B0<0 GOTO 2199 2192 B0=B0-1 2193 F=INT(20*RND(0))+1 2194 IF INT(D(F)/1000)<>INT(D(F)/10000)*10 GOTO 2193 2195 X=1000 2196 D(F)=D(F)+X 2197 GOSUB 2130 2198 PRINT "ANOTHER SUPER-BAT HAS BEEN BORN. LOOKS LIKE A STRONG ONE!" 2199 RETURN 2200 Z=1 2210 PRINT Z;TAB(4);A(Z);TAB(8);B(Z);TAB(12);C(Z);TAB(16);D(Z);TAB(24); 2220 Z=Z+1 2230 PRINT Z;TAB(28);A(Z);TAB(32);B(Z);TAB(36);C(Z);TAB(40);D(Z);TAB(48); 2232 Z=Z+1 2233 IF Z>20 GOTO 2245 2234 PRINT Z;TAB(52);A(Z);TAB(56);B(Z);TAB(60);C(Z);TAB(64);D(Z) 2235 Z=Z+1 2240 GOTO 2210 2245 PRINT 2250 PRINT "HEAR=1 FEEL=10 SMELL=100 "; 2260 PRINT "BATS=1000 PIT=10000 WUMPUS=100000" 2270 PRINT "YOU ARE IN ROOM ";H;" AND HAVE ";S;" ARROW(S) LEFT" 2280 RETURN 2290 DATA "CORPSE","DEAD BAT","BROKEN ARROW","STALAGMITE","PEBBLE" 2291 DATA "WUMPUS CLAW","LEDGE","LUNCH BAG","DOG" 2300 DATA "END" 2310 END