|
1 DIM LC$(100),RE$(500),P$(100),DA(255) |
|
2 DIM VERB$(40),NOUN$(40),N$(3),V$(3),I$(100) |
|
3 LOC1=6:LOC2=36:LOC3=27:LOC4=24:L1=33:L2=30:L3=11:L4=17:L5=36:L6=28:L7=7 |
|
4 REM |
|
5 REM |
|
6 R=1:VERB$="TAKDROEXAINSPUSPULHITOPECLOCUTBURSUB":NOUN$="MATRODDYNKNICANROCBOUHANCORPLUWAL" |
|
7 D1=0:D2=0:D3=0:D4=0:D5=0 |
|
8 REM |
|
10 REM ISLAND ADVENTURE |
|
12 REM BY BEN HECKENDORN |
|
13 REM |
|
14 IF R=23 THEN GOTO 320 |
|
15 GOTO 6000 |
|
20 PRINT :PRINT :PRINT |
|
22 PRINT LC$ |
|
24 PRINT RE$ |
|
25 GOTO 3000 |
|
26 IF LOC1=R THEN PRINT "A BOOK OF MATCHES IS HERE" |
|
27 IF LOC2=R THEN PRINT "A ROD IS HERE" |
|
28 IF LOC3=R THEN PRINT "A STICK OF DYNYMITE IS HERE" |
|
29 IF LOC4=R THEN PRINT "A KNIFE IS HERE" |
|
30 GOTO 56 |
|
32 LET V$=MID$(I$,1,3):S=4 |
|
33 IF MID$(I$,S,1)=" " THEN 40 |
|
35 S=S+1:IF S=40 THEN PRINT "NEED A NOUN":GOTO 30 |
|
39 GOTO 33:REM CONTINUE SCANNING |
|
40 LET N$=MID$(I$,S+1,3) |
|
41 IF V$=MID$(VERB$,34,3) THEN 5000 |
|
42 IF V$=MID$(VERB$,1,3) THEN 500 |
|
43 IF V$=MID$(VERB$,4,3) THEN 600 |
|
44 IF V$=MID$(VERB$,7,3) THEN 650 |
|
45 IF V$=MID$(VERB$,10,3) THEN 700 |
|
46 IF V$=MID$(VERB$,13,3) THEN 750 |
|
47 IF V$=MID$(VERB$,16,3) THEN 800 |
|
48 IF V$=MID$(VERB$,19,3) THEN 850 |
|
49 IF V$=MID$(VERB$,22,3) THEN 900 |
|
50 IF V$=MID$(VERB$,25,3) THEN 950 |
|
52 IF V$=MID$(VERB$,28,3) THEN 1000 |
|
53 IF V$=MID$(VERB$,31,3) THEN 1050 |
|
54 GOTO 4050 |
|
55 PRINT "I DON'T KNOW THAT VERB":GOTO 30 |
|
56 PRINT :PRINT " WHAT NOW ";:INPUT I$ |
|
57 IF I$="LOOK" THEN 10 |
|
58 IF I$="QUIT" THEN END |
|
59 IF I$="RESTART" THEN RUN |
|
60 IF I$="I" OR I$="INVENTORY" THEN 90 |
|
65 IF I$="SUB" OR I$="SUBROUTINES" THEN 5000 |
|
70 IF I$="N" AND NO>0 THEN R=NO:GOTO 10 |
|
72 IF I$="S" AND SO>0 THEN R=SO:GOTO 10 |
|
74 IF I$="E" AND EA>0 THEN R=EA:GOTO 10 |
|
75 IF I$="W" AND WE>0 THEN R=WE:GOTO 10 |
|
76 IF I$="U" AND UP>0 THEN R=UP:GOTO 10 |
|
77 IF I$="D" AND DO>0 THEN R=DO:GOTO 10 |
|
78 IF INSTR("NSEWUD", I$) > 0 THEN GOTO 10 |
|
79 GOTO 32 |
|
90 PRINT " YOU ARE HOLDING:" |
|
91 IF LOC1=0 THEN PRINT "SOME MATCHES" |
|
92 IF LOC2=0 THEN PRINT "A ROD" |
|
93 IF LOC3=0 THEN PRINT "A STICK OF DYNYMITE" |
|
94 IF LOC4=0 THEN PRINT "A KNIFE" |
|
95 GOTO 30 |
|
100 LC$="YOU ARE ON A DECK":RE$="THE SEA IS VAST":WE=0:EA=0:SO=0:NO=2:UP=0:DO=0:GOTO 20 |
|
110 LC$="YOU ARE ON SHORE":RE$="THE SAND GLITTERS IN THE SUNLIGHT" |
|
112 WE=0:EA=0:UP=0:DO=0:SO=1:NO=3:GOTO 20 |
|
120 LC$="YOU ARE ON A PATH":RE$=" " |
|
121 WE=0:EA=4:NO=0:SO=2:UP=0:DO=0:GOTO 20 |
|
130 LC$="YOU ARE AT THE EDGE OF A JUNGLE":RE$="DAMPNESS FILLS THE AIR." |
|
131 IF DR1=0 THEN RE$="A FALLEN TREE BLOCKS THE EAST PATH":GOTO 133 |
|
132 EA=5:NO=6:SO=0:WE=3:UP=0:DO=0:GOTO 20 |
|
133 EA=0:WE=3:SO=0:NO=6:UP=0:DO=0:GOTO 20 |
|
140 LC$="YOU ARE INSIDE THE JUNGLE":RE$=" ":EA=0:WE=4:NO=7:DO=0:UP=0:GOTO 20 |
|
141 EA=0:WE=0:NO=0:SO=4:UP=0:DO=0:GOTO 20 |
|
150 LC$="YOU ARE IN AN OLD LEAN-TO":RE$="THE BOARDS ARE LOOSE":WE=0:EA=0:NO=0:SO=4:UP=0:DO=0:GOTO 20 |
|
160 LC$="YOU ARE AT A WALL":RE$="IT IS MAN-MADE":EA=0:WE=0:NO=0:SO=5:DO=26:UP=0:GOTO 20 |
|
170 LC$="YOU ARE AT THE NORTH SIDE OF THE WALL":RE$=" " |
|
171 EA=19:WE=0:NO=9:SO=0:UP=0:DO=0:GOTO 20 |
|
180 LC$="YOU ARE IN A SWAMP":RE$="A HOLE IS IN THE GROUND":EA=0:WE=0:NO=10:SO=8:UP=0:DO=16:GOTO 20 |
|
190 LC$="YOU ARE ON A PATH":RE$="A ROPE LEADS DOWN":EA=0:WE=11:NO=0:SO=9:UP=0:DO=15 |
|
191 GOTO 20 |
|
200 LC$="YOU ARE AT THE BASE OF AN INACTIVE VOLCANO" |
|
201 IF DR2=0 THEN 203 |
|
202 RE$="A WEST PASSAGE LEADS INSIDE":WE=29:EA=10:NO=12:SO=0:DO=0:UP=0:GOTO 20 |
|
203 RE$="A BOULDER BLOCKS THE WESTERN ENTRANCE":WE=0:EA=10:UP=0:DO=0:SO=0:NO=12:GOTO 20 |
|
210 LC$="YOU ARE AT THE NORTH SIDE OF THE VOLCANO":RE$="A PASSAGE LEADS DOWN":DO=13:UP=0:EA=0:WE=0:SO=0 |
|
211 NO=0:SO=11:GOTO 20 |
|
220 LC$="YOU ARE IN A CHAMBER" |
|
221 IF DR5=0 THEN 223 |
|
222 RE$="A PANEL IS OPEN TO THE EAST":EA=14:WE=0:NO=0:SO=0:UP=12:GOTO 20 |
|
223 RE$="A LONG,NARROW HOLE IS NEXT TO A CLOSED PANEL":WE=0:EA=0:NO=0:SO=0:UP=12:DO=0:GOTO 20 |
|
230 LC$="YOU ARE IN A TUNNEL LEADING OUTSIDE":RE$="THE SUN SHINES FROM THE NORTH" |
|
231 WE=13:EA=0:NO=37:SO=0:UP=0:DO=0:GOTO 20 |
|
240 LC$="YOU ARE AT A DEAD-END":RE$="A ROPE LEADS UP":WE=0:EA=0:NO=0:SO=17:UP=10:DO=0:GOTO 20 |
|
250 LC$="YOU ARE IN A CURVE IN THE PASSAGE":RE$="SUNLIGHT SHINES THROUGH A HOLE IN THE CEILING" |
|
251 EA=17:WE=0:UP=9:DO=0:NO=0:SO=18:GOTO 20 |
|
260 LC$="YOU ARE IN AN OLD UNDER-GROUND GRAVEYARD":RE$="A DECAYED HAND EXTENDS FROM THE GROUND" |
|
261 EA=0:WE=16:NO=15:SO=0:UP=0:DO=0:GOTO 20 |
|
270 LC$="YOU ARE UNDER THE WALL'S FOUNDATION":RE$="YOU SEE SOME LIGHT TO THE NORTH" |
|
271 WE=0:EA=0:UP=0:DO=0:SO=26:NO=16:GOTO 20 |
|
280 LC$="YOU ARE ON A PATH NEXT TO THE NORTH SIDE OF THE WALL":RE$=" " |
|
281 EA=20:WE=8:NO=0:SO=0:DO=0:UP=0:GOTO 20 |
|
290 LC$="YOU ARE ON A PATH LEADING TO THE OCEAN":RE$="NEXT TO THE EAST SIDE OF THE WALL" |
|
291 EA=0:WE=19:NO=0:SO=21:UP=0:DO=0:GOTO 20 |
|
300 LC$="YOU ARE ON THE EASTERN SHORE":RE$="THE SAND IS DULL HERE":EA=22:WE=0:SO=0:UP=0:DO=0:NO=20:GOTO 20 |
|
310 LC$="YOU ARE AT THE BOTTOM OF A HILL":RE$=" ":WE=21:EA=0:UP=23:DO=0:NO=23:SO=0:GOTO 20 |
|
320 LC$="YOU ARE OUTSIDE A HUT" |
|
321 NO=24:SO=0:EA=0:WE=0:UP=0:DO=22 |
|
322 GOTO 20 |
|
330 LC$="YOU ARE INSIDE THE HUT":RE$="IT SMELLS OLD.":WE=0:EA=0:NO=0:SO=23:UP=25:DO=0:GOTO 20 |
|
340 I$="AS YOU ENTER THE LOFT THE HUT COLAPES":GOTO 4000 |
|
350 LC$="YOU ARE UNDER THE JUNGLE":RE$=" " |
|
351 NO=18:SO=27:WE=0:EA=0:UP=7:DO=0:GOTO 20 |
|
360 LC$="YOU ARE ON A PATH UNDER-GROUND":RE$="YOU HEAR DRIPPING WATER AHEAD" |
|
361 WE=0:EA=0:NO=26:SO=28:UP=0:DO=0:GOTO 20 |
|
370 LC$="YOU ARE IN A SMALL RECESS IN THE GROUND":RE$="A PLUG IS ON THE CEILING" |
|
371 NO=27:SO=0:WE=0:EA=0:UP=0:DO=0:GOTO 20 |
|
380 LC$="YOU ARE IN A CORRIDOR":RE$=" ":WE=32:EA=11:NO=0:SO=30:UP=0:DO=0:GOTO 20 |
|
390 LC$="YOU ARE IN A SMOOTH TUNNEL WITH A CHUTE-HOLE ABOVE(INACCESSABLE,THOUGH" |
|
391 IF DR3=0 THEN 393 |
|
392 RE$="A SMOOTH ROCK IS MOVED ASIDE TO REVEAL A HOLE":WE=0:EA=0:NO=29:SO=0:UP=0:DO=31:GOTO 20 |
|
393 RE$="A SMOOTH ROCK IS HERE":WE=0:EA=0:NO=29:SO=0:UP=0:DO=0:GOTO 20 |
|
400 LC$="YOU ARE IN A DAMP HOLE":UP=30:DO=27:NO=0:SO=0:WE=0:EA=0:RE$=" ":GOTO 20 |
|
410 LC$="YOU ARE IN A SHARP TURN OF THE CORRIDOR":RE$=" ":WE=0:EA=29:NO=0:SO=0:DO=0:UP=33:GOTO 20 |
|
420 LC$="YOU ARE ON A MUSTY PLATFORM" |
|
421 IF DR4=0 THEN 423 |
|
422 WE=0:EA=0:NO=0:SO=0:UP=34:DO=32:GOTO 20 |
|
423 RE$="A PIECE OF CANVAS COVERS THE UPPER EXIT":WE=0:EA=0:NO=0:SO=0:UP=0:DO=32:GOTO 20 |
|
430 LC$="YOU ARE IN THE HUGE HOLLOW IN THIS VOLCANO":RE$="THE SUN SHINES FROM ABOVE" |
|
431 WE=35:EA=0:NO=0:SO=0:UP=0:DO=33:GOTO 20 |
|
440 LC$="YOU ARE ON A CLIFF OUTSIDE THE VOLCANO":RE$="IT'S A LONG WAY DOWN!" |
|
441 WE=0:EA=34:NO=0:SO=36:UP=0:DO=0:GOTO 20 |
|
450 LC$="YOU ARE IN A HOLLOWED-OUT ROOM":RE$="A CORD DANGLES FROM THE CEILING" |
|
451 WE=0:EA=0:NO=35:SO=0:UP=0:DO=0:GOTO 20 |
|
460 PRINT "YOU COME OUT INTO THE SUNLIGHT AND":GOTO 2000 |
|
500 IF N$=MID$(NOUN$,1,3) AND LOC1=R THEN RE=1:LOC1=0:GOTO 1100 |
|
502 IF N$=MID$(NOUN$,4,3) AND LOC2=R THEN RE=1:LOC2=0:GOTO 1100 |
|
504 IF N$=MID$(NOUN$,7,3) AND LOC3=R THEN RE=1:LOC3=0:GOTO 1100 |
|
505 IF N$=MID$(NOUN$,10,3) AND LOC4=R THEN RE=1:LOC4=0:GOTO 1100 |
|
506 PRINT "YOU CAN'T TAKE THAT.":GOTO 30 |
|
600 IF N$=MID$(NOUN$,1,3) AND LOC1=0 THEN LOC1=R:RE=1:GOTO 1100 |
|
602 IF N$=MID$(NOUN$,4,3) AND LOC2=0 THEN LOC2=R:RE=1:GOTO 1100 |
|
604 IF N$=MID$(NOUN$,7,3) AND LOC3=0 THEN LOC3=R:RE=1:GOTO 1100 |
|
605 IF N$=MID$(NOUN$,10,3) AND LOC4=0 THEN LOC4=R:RE=1:GOTO 1100 |
|
606 PRINT "YOU CAN'T DROP THAT":GOTO 30 |
|
650 IF N$=MID$(NOUN$,1,3) AND LOC1=0 OR LOC1=R THEN PRINT "THEY LOOK ORDINARY":GOTO 30 |
|
652 IF N$=MID$(NOUN$,4,3) AND LOC2=0 OR LOC2=R THEN PRINT "IT IS LONG AND NARROW":GOTO 30 |
|
654 IF N$=MID$(NOUN$,7,3) AND LOC3=0 OR LOC3=R THEN PRINT "IT LOOKS DANGEROUS":GOTO 30 |
|
656 IF N$=MID$(NOUN$,10,3) AND LOC4=0 OR LOC4=R THEN PRINT "IT LOOKS NORMAL":GOTO 30 |
|
657 IF N$=MID$(NOUN$,13,3) AND R=33 THEN PRINT "IT IS THICK":GOTO 30 |
|
658 IF N$=MID$(NOUN$,16,3) AND R=30 THEN PRINT "IT IS OVER SOMETHING....":GOTO 30 |
|
659 IF N$=MID$(NOUN$,19,3) AND R=11 THEN PRINT "IT COVERS A HOLE":GOTO 30 |
|
660 IF N$=MID$(NOUN$,22,3) AND R=17 THEN PRINT "IT LOOKS AS IF IT WANTS SOMTHING":GOTO 30 |
|
661 IF N$=MID$(NOUN$,25,3) AND R=36 THEN PRINT "IT IS LABELED:TAB(NOT RESET RESET SPC(THEN ....":GOTO 30 |
|
662 IF N$=MID$(NOUN$,28,3) AND R=28 THEN PRINT "A FEW DROPS OF WATER SEEP FROM BEHIND IT":GOTO 30 |
|
663 IF N$=MID$(NOUN$,31,3) AND R=7 THEN PRINT "IT IS MADE OF STONE":GOTO 30 |
|
664 IF N$="HUT" AND R=23 OR R=24 OR R=25 THEN PRINT "IT IS OLD":GOTO 30 |
|
665 IF N$="DEC" AND R=1 THEN PRINT "IT LOOKS ORDINARY":GOTO 30 |
|
666 PRINT "YOU CAN'T EXAMINE THAT":GOTO 30 |
|
700 IF N$=MID$(NOUN$,4,3) THEN GOTO 704 |
|
702 PRINT "YOU CAN'T INSERT THAT":GOTO 30 |
|
704 PRINT "THE PANEL SLIDES OPEN":EA=14:DR5=1:GOTO 30 |
|
750 IF N$=MID$(NOUN$,16,3) AND R=30 THEN PRINT "UNDER IT IS A HOLE":DR3=1:DO=31:GOTO 30 |
|
752 PRINT "WHY BOTHER?":GOTO 30 |
|
800 IF N$=MID$(NOUN$,22,3) AND R=17 THEN 752 |
|
802 IF N$=MID$(NOUN$,25,3) AND R=36 THEN PRINT "A CHUTE OPENS BELOW YOU.YOU FALL IN....":R=30:GOTO 10 |
|
803 IF N$=MID$(NOUN$,28,3) AND R=28 THEN I$="THE OCEAN POURS IN ON YOU...":GOTO 4000 |
|
804 IF N$=MID$(NOUN$,16,3) AND R=30 AND DR1=1 THEN PRINT "IT GOES OVER THE HOLE":DR1=0:DO=0:GOTO 30 |
|
805 IF N$=MID$(NOUN$,16,3) AND R=30 AND DR1=0 THEN PRINT "IT WON'T COME ANY FUTHER":GOTO 30 |
|
806 PRINT "WHY BOTHER?":GOTO 30 |
|
850 PRINT "NOTHING HAPPENS":GOTO 30 |
|
900 IF N$=MID$(NOUN$,28,3) AND R=28 THEN 803 |
|
902 PRINT "YOU CAN'T OPEN THAT":GOTO 30 |
|
950 IF V$=MID$(VERB$,28,3) AND N$=MID$(NOUN$,13,3) AND R=33 THEN PRINT "OKAY,YOU CAN GO UP":DR4=1:UP=34:GOTO 30 |
|
952 PRINT "YOU CAN'T CLOSE THAT":GOTO 30 |
|
1000 IF N$=MID$(NOUN$,13,3) AND R=33 AND LOC4=0 THEN 950 |
|
1002 PRINT "YOU CAN'T CUT THAT":GOTO 30 |
|
1050 IF N$="TRE" AND R=4 AND LOC1=0 THEN PRINT "OKAY.":DR1=1:EA=5:GOTO 30 |
|
1052 PRINT "YOU CAN'T BURN THAT":GOTO 30 |
|
1070 PRINT "WHERE DO YOU WANT TO PUT IT":INPUT P$ |
|
1072 IF P$="BOULDER" THEN 1074 |
|
1073 PRINT "YOU CAN'T PUT THAT THERE":GOTO 30 |
|
1074 IF LOC3=0 AND R=11 THEN 1076 |
|
1075 GOTO 1073 |
|
1076 PRINT "IT BLOWS RIGHT THROUGH":DR2=1:WE=29:EA=10:NO=12:SO=0:UP=0:DO=0:LOC3=0:GOTO 30 |
|
1100 IF RE=1 THEN PRINT "OKAY.":GOTO 30 |
|
2000 REM |
|
2002 FOR U=1 TO 20:PRINT " ":NEXT U |
|
2004 PRINT " YOU HAVE FOUND A BOAT." |
|
2005 PRINT " YOU USE IT TO GET HOME" |
|
2006 FOR G=1 TO 1500:NEXT G:GOTO 4010 |
|
3000 PRINT "YOU FIND YOU CAN GO..." |
|
3002 IF NO>0 THEN PRINT "NORTH" |
|
3004 IF SO>0 THEN PRINT "SOUTH" |
|
3005 IF EA>0 THEN PRINT "EAST" |
|
3006 IF WE>0 THEN PRINT "WEST" |
|
3007 IF UP>0 THEN PRINT "UP" |
|
3008 IF DO>0 THEN PRINT "DOWN" |
|
3010 GOTO 26 |
|
4000 REM |
|
4002 FOR U=1 TO 20:PRINT " ":NEXT U |
|
4004 PRINT " ";I$ |
|
4005 PRINT :PRINT :PRINT " YOU HAVE DIED!":FOR G=1 TO 1000:NEXT G |
|
4010 END |
|
4050 IF V$="PUT" THEN 1070 |
|
4052 IF V$="LOO" THEN 10 |
|
4054 GOTO 55 |
|
5000 REM |
|
5002 REM |
|
5004 PRINT :PRINT :PRINT :PRINT :PRINT |
|
5005 PRINT " GAME FUNTIONS" |
|
5006 PRINT " (1) LOAD GAME" |
|
5007 PRINT " (2) SAVE GAME" |
|
5008 PRINT " PLAYER STATUS" |
|
5009 PRINT " (3) PRINT PLAYER STATUS" |
|
5010 PRINT " (4) DISPLAY PLAYER STATUS" |
|
5012 PRINT " (5) RETURN TO GAME":PRINT |
|
5014 PRINT " PRESS THE NUMBER OF THE" |
|
5015 PRINT " ITEM YOU WANT" |
|
5016 INPUT KL |
|
5018 ON KL GOTO 5030,5050,5080,5090,5100 |
|
5022 GOTO 5000 |
|
5030 OPEN "I",1,"DATA.DAT" |
|
5032 FOR G=1 TO 10:LINE INPUT #1,MM$:LET DA(G)=VAL(MM$):NEXT G |
|
5033 R=DA(1):LOC1=DA(2):LOC2=DA(3):LOC3=DA(4):LOC4=DA(5):DR1=DA(6):DR2=DA(7):DR3=DA(8):DR4=DA(9):DR5=DA(10) |
|
5034 CLOSE #1:GOTO 10 |
|
5050 OPEN "O",1,"DATA.DAT" |
|
5051 DA(1)=R:DA(2)=LOC1:DA(3)=LOC2:DA(4)=LOC3:DA(5)=LOC4:DA(6)=DR1:DA(7)=DR2:DA(8)=DR3:DA(9)=DR4 |
|
5052 DA(10)=DR5 |
|
5053 FOR G=1 TO 10:LET M=DA(G):PRINT #1,STR$(M):NEXT G |
|
5054 CLOSE #1:GOTO 10 |
|
5080 LPRINT " PLAYER STATUS":LPRINT |
|
5081 LPRINT "LOCATION:";LC$:LPRINT "INVENTORY:" |
|
5082 IF LOC1=0 THEN LPRINT "MATCHES" |
|
5083 IF LOC2=0 THEN LPRINT "ROD" |
|
5084 IF LOC3=0 THEN LPRINT "DYNYMITE" |
|
5085 GOTO 5000 |
|
5090 PRINT " PLAYER STATUS" |
|
5091 PRINT "LOCATION:";LC$ |
|
5092 PRINT "INVENTORY CONTENTS:" |
|
5093 IF LOC1=0 THEN PRINT "MATCHES" |
|
5094 IF LOC2=0 THEN PRINT "ROD" |
|
5095 IF LOC3=0 THEN PRINT "DYNYMITE" |
|
5096 IF LOC4=0 THEN PRINT "KNIFE" |
|
5097 PRINT :PRINT :PRINT " PRESS ANY KEY TO CONTINUE" |
|
5098 A$=INKEY$: IF A$<>"" THEN 5000 |
|
5099 GOTO 5098 |
|
5100 GOTO 10 |
|
6000 ON R GOTO 100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,260,270,280,290,300,310,320,330,340,350,360,370,380,390,400,410,420,430,440,450,460 |
|
0,160,170,180,190, |