mirror of
https://github.com/AppleCommander/bastools.git
synced 2024-06-02 04:41:27 +00:00
404 lines
12 KiB
QBasic
404 lines
12 KiB
QBasic
1 GOTO 10
|
|
2 HOME : RETURN
|
|
10 REM ESCAPE FROM MONSTER CAVERNS
|
|
100 PRINT "YOU CAN PLAY THIS GAME IN 3 VERSIONS:"
|
|
110 PRINT
|
|
120 PRINT TAB( 5);"1-HARD"
|
|
130 PRINT TAB( 5);"2-MEDIUM"
|
|
140 PRINT TAB( 5);"3-EASY"
|
|
150 PRINT
|
|
160 PRINT "WHICH ONE DO YOU WANT";
|
|
170 INPUT DI
|
|
180 IF DI <1 THEN 160
|
|
190 IF DI >3 THEN 160
|
|
200 GOSUB 2
|
|
210 PRINT "YOU ARE A FAMOUS EXPLORER WHO HAS"
|
|
220 PRINT "SPENT YEARS PREPARING FOR A GREAT"
|
|
230 PRINT "EXPEDITION TO THE ISLAND OF PIHC,"
|
|
240 PRINT "AN UNCHARTED DOT OF LAND THOUSANDS"
|
|
250 PRINT "OF MILES PRON CIVILIZATION. YOUR"
|
|
260 PRINT "RESEARCH HAS LED TO A DUSTY OLD"
|
|
270 PRINT "BOOK WITH A SECRET MAP SEWN INSIDE"
|
|
280 PRINT "THE BINDING. YOU'VE FOLLOWED THE"
|
|
290 PRINT "MAP AND HAVE TRAVELED THROUGH THE"
|
|
300 PRINT "THICK JUNGLE OF PIHC. NOW YOU"
|
|
310 PRINT "ARE DEEP INSIDE THE HAZE OF"
|
|
320 PRINT "TUNNELS BENEATH ITS SURFACE."
|
|
330 PRINT
|
|
340 PRINT "YOUR NATIVE GUIDES REFUSED TO GO"
|
|
350 PRINT "THIS FAR, BECAUSE THEY HAD HEARD"
|
|
360 PRINT "THE CAVE CONTAINED TERRIBLE SCARY"
|
|
370 PRINT "MONSTERS. THEY SAID THERE WAS"
|
|
380 PRINT "ONLY ONE WAY TO ESCAPE FROM"
|
|
390 PRINT "THOSE HORRIBLE CREATURES AND"
|
|
400 PRINT "THAT WAS TO FIND THE GIANT RUBY"
|
|
410 PRINT "IDOL'S EYE HIDDEN IN THE DARKEST"
|
|
420 PRINT "CHAMBER OE THE CAVE."
|
|
430 PRINT
|
|
440 PRINT "(HIT THE ENTER KEY FOR MORE)";
|
|
450 INPUT X$
|
|
460 GOSUB 2
|
|
470 PRINT "THE GUIDES TOLD YOU THAT THE"
|
|
480 PRINT "GIANT RUBY WAS JUST PART OF A"
|
|
490 PRINT "VAST TREASURE. SEVERAL OTHERS"
|
|
500 PRINT "HAD FOUND THE CAVE, AND ONE HAD"
|
|
510 PRINT "EVEN LOCATED THE TREASURE. BUT"
|
|
520 PRINT "THE MONSTERS DID NOT LET THEM"
|
|
530 PRINT "ESCAPE. THE EXPLORERS WERE NOT"
|
|
540 PRINT "ABLE TO FIND THE GIANT RUBY"
|
|
550 PRINT "THAT WOULD SAVE THEM."
|
|
560 PRINT
|
|
570 PRINT "ONE MORE THING: SOMEWHERE IN"
|
|
580 PRINT "THE MAZE OF TUNNELS IS A MAGIC"
|
|
590 PRINT "WORD WRITTEN BY AN OLD VICTIM."
|
|
600 PRINT "(HE DIED HORRIBLY BECAUSE HE"
|
|
610 PRINT "FORGOT IT.) THE WORD CHANGES"
|
|
620 PRINT "FROM TIME TO TIME, SO BE CAREFUL!"
|
|
630 PRINT "THE MONSTER THAT PROWLS THE CAVE"
|
|
640 PRINT "WILL SMOTHER YOU IN SLIME UNLESS"
|
|
650 PRINT "YOU REMEMBER IT!! FINALLY, AT"
|
|
660 PRINT "THE END, YOU MUST GET TO ROOM 1"
|
|
670 PRINT "TO LEAVE THE CAVE. GOOD LUCK!"
|
|
680 PRINT
|
|
690 Q$ = CHR$(34)
|
|
700 PRINT "HOW MANY GUIDES DID YOU HAVE";
|
|
710 INPUT LOST
|
|
720 IF LOST <1 THEN 700
|
|
730 REM RANDOMIZE(LOST)
|
|
731 LOST = INT(LOST): IF LOST >100 THEN LOST = 100
|
|
732 FOR I = 1 TO LOST:R = RND(1): NEXT
|
|
740 GOSUB 2
|
|
750 GOSUB 3240
|
|
760 PRINT
|
|
770 FIND = 0
|
|
780 TR = INT( RND(1) *15) +3
|
|
790 MG = INT( RND(1) *15) +3
|
|
800 IF MG = TR THEN 790
|
|
810 REM --------------------------------
|
|
820 ROOM = 1
|
|
830 GOSUB 3870
|
|
840 GOSUB 2840
|
|
850 IF I$ = "E" THEN 920
|
|
860 IF I$ = "W" THEN 1370
|
|
870 IF I$ = "N" THEN GOSUB 2360
|
|
880 IF I$ = "S" THEN GOSUB 2360
|
|
890 GOSUB 3120
|
|
900 GOTO 840
|
|
910 REM --------------------------------
|
|
920 ROOM = 2
|
|
930 GOSUB 2840
|
|
940 IF I$ = "E" THEN 1010
|
|
950 IF I$ = "W" THEN 820
|
|
960 IF I$ = "N" THEN 2270
|
|
970 IF I$ = "S" THEN GOSUB 2360
|
|
980 GOSUB 3120
|
|
990 GOTO 930
|
|
1000 REM --------------------------------
|
|
1010 ROOM = 3
|
|
1020 GOSUB 2840
|
|
1030 IF I$ = "E" THEN GOSUB 2360
|
|
1040 IF I$ = "W" THEN 920
|
|
1050 IF I$ = "N" THEN GOSUB 2360
|
|
1060 IF I$ = "S" THEN 1280
|
|
1070 GOSUB 3120
|
|
1080 GOTO 1020
|
|
1090 REM --------------------------------
|
|
1100 ROOM = 4
|
|
1110 GOSUB 2840
|
|
1120 IF I$ = "E" THEN 1190
|
|
1130 IF I$ = "W" THEN GOSUB 2360
|
|
1140 IF I$ = "N" THEN GOSUB 2360
|
|
1150 IF I$ = "S" THEN GOSUB 2360
|
|
1160 GOSUB 3120
|
|
1170 GOTO 1110
|
|
1180 REM --------------------------------
|
|
1190 ROOM = 5
|
|
1200 GOSUB 2840
|
|
1210 IF I$ = "E" THEN 1280
|
|
1220 IF I$ = "W" THEN 1100
|
|
1230 IF I$ = "N" THEN GOSUB 2360
|
|
1240 IF I$ = "S" THEN GOSUB 2360
|
|
1250 GOSUB 3120
|
|
1260 GOTO 1200
|
|
1270 REM --------------------------------
|
|
1280 ROOM = 6
|
|
1290 GOSUB 2840
|
|
1300 IF I$ = "E" THEN GOSUB 2360
|
|
1310 IF I$ = "W" THEN 1190
|
|
1320 IF I$ = "N" THEN 1010
|
|
1330 IF I$ = "S" THEN 1550
|
|
1340 GOSUB 3120
|
|
1350 GOTO 1290
|
|
1360 REM --------------------------------
|
|
1370 ROOM = 7
|
|
1380 GOSUB 2840
|
|
1390 IF I$ = "E" THEN 1460
|
|
1400 IF I$ = "W" THEN 820
|
|
1410 IF I$ = "N" THEN GOSUB 2360
|
|
1420 IF I$ = "S" THEN GOSUB 2360
|
|
1430 GOSUB 3120
|
|
1440 GOTO 1380
|
|
1450 REM --------------------------------
|
|
1460 ROOM = 8
|
|
1470 GOSUB 2840
|
|
1480 IF I$ = "E" THEN GOSUB 2360
|
|
1490 IF I$ = "W" THEN 1370
|
|
1500 IF I$ = "N" THEN GOSUB 2360
|
|
1510 IF I$ = "S" THEN 1730
|
|
1520 GOSUB 3120
|
|
1530 GOTO 1470
|
|
1540 REM --------------------------------
|
|
1550 ROOM = 9
|
|
1560 GOSUB 2840
|
|
1570 IF I$ = "E" THEN GOSUB 2360
|
|
1580 IF I$ = "W" THEN GOSUB 2360
|
|
1590 IF I$ = "N" THEN 1280
|
|
1600 IF I$ = "S" THEN 1820
|
|
1610 GOSUB 3120
|
|
1620 GOTO 1560
|
|
1630 REM --------------------------------
|
|
1640 ROOM = 10
|
|
1650 GOSUB 2840
|
|
1660 IF I$ = "E" THEN 1730
|
|
1670 IF I$ = "W" THEN GOSUB 2360
|
|
1680 IF I$ = "N" THEN GOSUB 2360
|
|
1690 IF I$ = "S" THEN 1910
|
|
1700 GOSUB 3120
|
|
1710 GOTO 1650
|
|
1720 REM --------------------------------
|
|
1730 ROOM = 11
|
|
1740 GOSUB 2840
|
|
1750 IF I$ = "E" THEN GOSUB 2360
|
|
1760 IF I$ = "W" THEN 1640
|
|
1770 IF I$ = "N" THEN 1460
|
|
1780 IF I$ = "S" THEN GOSUB 2360
|
|
1790 GOSUB 3120
|
|
1800 GOTO 1740
|
|
1810 REM --------------------------------
|
|
1820 ROOM = 12
|
|
1830 GOSUB 2840
|
|
1840 IF I$ = "E" THEN 2090
|
|
1850 IF I$ = "W" THEN GOSUB 2360
|
|
1860 IF I$ = "N" THEN 1550
|
|
1870 IF I$ = "S" THEN 2000
|
|
1880 GOSUB 3120
|
|
1890 GOTO 1830
|
|
1900 REM --------------------------------
|
|
1910 ROOM = 13
|
|
1920 GOSUB 2840
|
|
1930 IF I$ = "E" THEN GOSUB 2360
|
|
1940 IF I$ = "W" THEN GOSUB 2360
|
|
1950 IF I$ = "N" THEN 1640
|
|
1960 IF I$ = "S" THEN 2090
|
|
1970 GOSUB 3120
|
|
1980 GOTO 1920
|
|
1990 REM --------------------------------
|
|
2000 ROOM = 14
|
|
2010 GOSUB 2840
|
|
2020 IF I$ = "E" THEN GOSUB 2360
|
|
2030 IF I$ = "W" THEN GOSUB 2360
|
|
2040 IF I$ = "N" THEN 1820
|
|
2050 IF I$ = "S" THEN GOSUB 2360
|
|
2060 GOSUB 3120
|
|
2070 GOTO 2010
|
|
2080 REM --------------------------------
|
|
2090 ROOM = 15
|
|
2100 GOSUB 2840
|
|
2110 IF I$ = "E" THEN 1910
|
|
2120 IF I$ = "W" THEN 1820
|
|
2130 IF I$ = "N" THEN 2180
|
|
2140 IF I$ = "S" THEN GOSUB 2360
|
|
2150 GOSUB 3120
|
|
2160 GOTO 2100
|
|
2170 REM --------------------------------
|
|
2180 ROOM = 16
|
|
2190 GOSUB 2840
|
|
2200 IF I$ = "E" THEN 2270
|
|
2210 IF I$ = "W" THEN GOSUB 2360
|
|
2220 IF I$ = "N" THEN GOSUB 2360
|
|
2230 IF I$ = "S" THEN 2090
|
|
2240 GOSUB 3120
|
|
2250 GOTO 2190
|
|
2260 REM --------------------------------
|
|
2270 ROOM = 17
|
|
2280 GOSUB 2840
|
|
2290 IF I$ = "E" THEN GOSUB 2360
|
|
2300 IF I$ = "W" THEN 2180
|
|
2310 IF I$ = "N" THEN 920
|
|
2320 IF I$ = "S" THEN GOSUB 2360
|
|
2330 GOSUB 3120
|
|
2340 GOTO 2280
|
|
2350 REM ---------------- DEAD END SUBROUTINE ----------------
|
|
2360 ON DI GOTO 2370,2380,2390
|
|
2370 ON INT( RND(1) *5) +1 GOTO 2400,2430,2520,2550,2580
|
|
2380 ON INT( RND(1) *6) +1 GOTO 2400,2460,2490,2520,2550,2580
|
|
2390 ON INT( RND(1) *7) +1 GOTO 2400,2430,2460,2490,2520,2550,2580
|
|
2400 PRINT "SORRY, THERE IS NO DOOR HERE."
|
|
2410 PRINT "YOU CAN'T GO THIS WAY."
|
|
2420 RETURN
|
|
2430 PRINT "THIS WHOLE WALL IS OOZING ACID."
|
|
2440 PRINT "YOU CAN'T GO THIS WAY."
|
|
2450 RETURN
|
|
2460 PRINT "THIS DOOR HAS SUDDENLY CLOSED."
|
|
2470 PRINT "YOU CAN'T GO THIS WAY."
|
|
2480 RETURN
|
|
2490 PRINT "FEROCIOUS GILA MONSTERS BAR THE WAY."
|
|
2500 PRINT "YOU CAN'T GO THIS WAY."
|
|
2510 RETURN
|
|
2520 PRINT "AHEAD ARE SHEETS OF UNPASSABLE FLAME."
|
|
2530 PRINT "YOU CAN'T GO THIS WAY."
|
|
2540 RETURN
|
|
2550 PRINT "YOU ALMOST WALK INTO A CLOUD OF POISON."
|
|
2560 PRINT "YOU CAN'T GO THIS WAY."
|
|
2570 RETURN
|
|
2580 ON INT( RND(1) *4) +1 GOTO 2590,2650,2710,2770
|
|
2590 PRINT "THE WALLS START TO CRUNBLE AROUND YOU,"
|
|
2600 ON INT( RND(1) *6) +1 GOTO 2610,2610,2610,2610,2610,2630
|
|
2610 PRINT "BUT YOU NARROWLY ESCAPE."
|
|
2620 RETURN
|
|
2630 PRINT "AND CRUSH YOU INTO DUST. THE END."
|
|
2640 END
|
|
2650 PRINT "YOU FALL INTO THE SCUM BUGS' PIT"
|
|
2660 ON INT( RND(1) *6) +1 GOTO 2670,2670,2670,2670,2670,2690
|
|
2670 PRINT "BUT MANAGE TO PULL YOURSELF TO SAFETY."
|
|
2680 RETURN
|
|
2690 PRINT "AND ARE SAVAGELY BITTEN. THE END."
|
|
2700 END
|
|
2710 PRINT "HISSING SLIME CREATURES BLOCK THE WAY,"
|
|
2720 ON INT( RND(1) *6) +1 GOTO 2730,2730,2730,2730,2730,2750
|
|
2730 PRINT "BUT YOU FREEZE AND THEY IGNORE YOU."
|
|
2740 RETURN
|
|
2750 PRINT "AND TURN YOU INTO JELLY. THE END."
|
|
2760 END
|
|
2770 PRINT "A TORNADO OF SAWFLIES BUZZES AT YOU,"
|
|
2780 ON INT( RND(1) *6) +1 GOTO 2790,2790,2790,2790,2790,2810
|
|
2790 PRINT "BUT YOU DUCK SAEFLY BEHIND FALLEN ROCK."
|
|
2800 RETURN
|
|
2810 PRINT "AND SLASHES YOU TO SHREDS. THE END."
|
|
2820 END
|
|
2830 REM ---------------- TREASURE AND RUBY SUBROUTINE ----------------
|
|
2840 PRINT
|
|
2850 GOSUB 3480
|
|
2860 PRINT " ------> YOU ARE IN ROOM ";ROOM;" <------"
|
|
2870 IF ROOM < >TR THEN 2950
|
|
2880 IF F1 = 1 THEN 3030
|
|
2890 PRINT "** YOU'VE FOUND ALL THE TREASURE!!! **"
|
|
2900 GOSUB 3410
|
|
2910 F1 = 1
|
|
2920 IF F2 = 1 THEN 3060
|
|
2930 PRINT "(NOW TRY TO FIND THE RUBY TO ESCAPE)"
|
|
2940 PRINT
|
|
2950 IF ROOM < >MG THEN 3030
|
|
2960 IF F2 = 1 THEN 3030
|
|
2970 PRINT "* YOU'VE FOUND THE RUBY TO ESCAPE!! *"
|
|
2980 GOSUB 3410
|
|
2990 F2 = 1
|
|
3000 IF F1 = 1 THEN 3060
|
|
3010 PRINT "(NOW TRY TO LOCATE THE VAST TREASURE)"
|
|
3020 PRINT
|
|
3030 PRINT "WHICH WAY DO YOU WANT TO GO?"
|
|
3040 INPUT I$
|
|
3050 RETURN
|
|
3060 PRINT "*********** YOU DID IT!!! ***********"
|
|
3070 PRINT "YOU FOUND THE TREASURE--AND ALSO FOUND"
|
|
3080 PRINT "THE GIANT RUBY TO LET YOU ESCAPE !!!!!"
|
|
3090 PRINT "NOW JUST RETURN TO ROOM 1 TO GET BACK!"
|
|
3100 GOTO 3020
|
|
3110 REM ---------------- DIRECTION SUBROUTINE ----------------
|
|
3120 IF I$ = "N" OR I$ = "E" OR I$ = "W" OR I$ = "S" THEN 3390
|
|
3130 PRINT CHR$(7)
|
|
3140 K = K +1
|
|
3150 IF K <5 THEN 3220
|
|
3160 PRINT "YOU DIDN'T LISTEN, DID YOU?"
|
|
3170 PRINT "A DOZEN DEADLY PURPLE CAVE CREATURES"
|
|
3180 PRINT "PULL YOU DOWN INTO THE MUCK. THEY"
|
|
3190 PRINT "HAVEN'T HAD A MEAL SINCE THE LAST"
|
|
3200 PRINT "FOOLISH EXPLORER DROPPED IN. BYE-BYE!"
|
|
3210 END
|
|
3220 PRINT "YOU JUST WALKED INTO A CORNER AND"
|
|
3230 PRINT "BANGED YOUR HEAD ON A SLIMY ROCK."
|
|
3239 REM ---- SHOW DIRECTIONS AT START OF GAME, AND WHEN YOU ENTER AN INVALID ONE
|
|
3240 PRINT
|
|
3250 PRINT "*";
|
|
3260 FOR L = 1 TO 34
|
|
3270 PRINT "=";
|
|
3280 NEXT L
|
|
3290 PRINT "*"
|
|
3300 PRINT ": THE ONLY DIRECTIONS YOU CAN GIVE :"
|
|
3310 PRINT ": ARE: ";Q$;"N";Q$;", ";Q$;"E";Q$;", ";Q$;"S";
|
|
3320 PRINT Q$;", OR ";Q$;"W";Q$; TAB( 36);":"
|
|
3330 PRINT "*";
|
|
3340 FOR L = 1 TO 34
|
|
3350 PRINT "=";
|
|
3360 NEXT L
|
|
3370 PRINT "*"
|
|
3390 RETURN
|
|
3400 REM ---------------- BEEP SUBROUTINE ----------------
|
|
3410 FOR B = 1 TO 5
|
|
3420 PRINT CHR$(7);
|
|
3430 FOR LAG = 1 TO 600
|
|
3440 NEXT LAG
|
|
3450 NEXT B
|
|
3460 RETURN
|
|
3470 REM ---------------- SLIME MONSTER SUBROUTINE ----------------
|
|
3480 IF SLIME = 1 THEN 3610
|
|
3490 IF ROOM <7 THEN 3760
|
|
3500 MAGIC$ = ""
|
|
3510 FOR S = 1 TO 7
|
|
3520 MAGIC$ = MAGIC$ + CHR$( INT( RND(1) *26) +65)
|
|
3530 NEXT S
|
|
3540 GOSUB 3780
|
|
3550 PRINT "YOU SEE A WORD WRITTEN IN BLOOD ON THE"
|
|
3560 PRINT "WALL: ";MAGIC$;" REMEMBER THIS WORD--"
|
|
3570 PRINT "IT MAY JUST SAVE YOUR LIFE!!!"
|
|
3580 GOSUB 3780
|
|
3590 SLIME = 1
|
|
3600 GOTO 3760
|
|
3610 IF INT( RND(1) *7) < >1 THEN 3760
|
|
3620 GOSUB 3780
|
|
3630 PRINT "THE HORRIBLE GREEN MUCK MONSTER IS"
|
|
3640 PRINT "IN THE ROOM WITH YOU. YOU HAVE ONE"
|
|
3650 PRINT "CHANCE TO USE THE MAGIC WORD TO SAVE"
|
|
3660 PRINT "YOUR LIFE--OTHERWISE YOU'LL BE DEAD"
|
|
3670 PRINT "IN TWO SECONDS! QUICK! WHAT IS IT";
|
|
3680 INPUT TRY$
|
|
3690 IF TRY$ = MAGIC$ THEN 3730
|
|
3700 PRINT "NO!! YOU'RE WRONG! THE MAGIC WORD"
|
|
3710 PRINT "WAS ";MAGIC$;". AARRRRGGGHHHH!!!!"
|
|
3720 END
|
|
3730 PRINT "THIS TIME YOU REMEMBERED. LUCKY YOU!"
|
|
3740 SLIME = 0
|
|
3750 GOSUB 3780
|
|
3760 RETURN
|
|
3770 REM ---------------- LINE DRAWING SUBROUTINE ----------------
|
|
3780 PRINT
|
|
3790 N = ( RND(1) *26) +64
|
|
3800 FOR E = 1 TO 38
|
|
3810 PRINT CHR$(N);
|
|
3820 NEXT E
|
|
3830 PRINT
|
|
3840 PRINT
|
|
3850 RETURN
|
|
3860 REM ---------------- CHECK FOR WIN SUBROUTINE ----------------
|
|
3870 IF F1 < >1 OR F2 < >1 THEN 3980
|
|
3880 PRINT
|
|
3890 PRINT "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
3900 PRINT
|
|
3910 PRINT "YOU DID IT!!!! YOU FOUND THE TREASURE"
|
|
3920 PRINT "AND THE GIANT RUBY--AND YOU MADE IT"
|
|
3930 PRINT "BACK TO ROOM 1 TO GET OUT OF THE MAZE!"
|
|
3940 PRINT
|
|
3950 PRINT "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
3960 GOSUB 3410
|
|
3970 END
|
|
3980 PRINT
|
|
3990 PRINT "$$$$$$$$$$$$ INVENTORY $$$$$$$$$$$$"
|
|
4000 PRINT
|
|
4010 IF F2 = 1 THEN PRINT TAB( 9);"-- GIANT RUBY --"
|
|
4020 IF F1 = 1 THEN PRINT TAB( 7);"-- FABULOUS TREASURE --"
|
|
4030 IF F1 = 0 AND F2 = 0 THEN PRINT TAB( 5);"-- NOTHING BUT YOUR WITS --"
|
|
4040 PRINT
|
|
4050 PRINT "$$$$$$$$$$$$ INVENTORY $$$$$$$$$$$$"
|
|
4060 PRINT
|
|
4070 RETURN
|