Zolan: Zolan2.B

Является частью релиза: Zolan
Размер файла: 7497
md5: bde983aa2e571c3e3c0583409ce431ca
  2 CLEAR 32767: POKE 23658,8
  3 READ N0,N1,N2,N3,N4,N5,N6,N7,N8,NT
  4 READ ROOMS,OBJ,CARRY,LAMP
  5 READ U9,ON,L,U,CI
  9 DATA 0,1,2,3,4,5,6,7,8,20,22,9,N3,27,N0,N0,N1,N3,N0
  10 PRINT  INK N7; PAPER N2;AT N3,N5;" THE ZOLAN ADVENTURE "
  20 PRINT  INK N7; PAPER N2;AT N7,N7;" BY KEVIN PORTER "
  30 DIM S(N8): DIM W(CARRY): DIM T$(ROOMS,N6): DIM R$(ROOMS,24)
  35 DIM Z$(32): DIM O(OBJ): DIM O$(OBJ,15)
  40 FOR I=N1 TO CARRY: LET W(I)=N0: NEXT I
  50 FOR I=N1 TO N8: LET S(I)=N1: NEXT I: GO SUB 8000: CLS 
  1010 FOR N=N1 TO 15 STEP N2
  1015 IF NOT L THEN  GO TO 2800
  1017 IF L>11 AND NOT ON THEN  GO TO 2000
  1020 PRINT AT N,N0;"YOU ARE ";R$(L)
  1025 GO SUB 4000: GO SUB 6600
  1030 INPUT "TYPE IN COMMAND ";C$
  1034 LET E$=Z$
  1035 PRINT AT NT,N0;E$
  1040 IF LEN C$>N2 THEN  IF C$( TO 3)="GO " THEN  LET C$=C$(N4 TO )
  1045 IF L=22 THEN  LET U=U-1: IF NOT U THEN  GO TO 3900
  1080 IF ON THEN  LET LAMP=LAMP-1: IF NOT LAMP THEN  PRINT AT NT,N0;"YOUR TORCH BATTERIES ARE DEAD": LET ON=N0
  1090 IF LAMP=N4 THEN  LET E$="YOUR TORCH IS GROWING DIMMER": GO TO 1035
  1100 IF CI THEN  LET CI=CI-1: IF NOT CI THEN  GO TO 7200
  1110 IF CI=7 THEN  LET E$="YOU'D BETTER GET OUT QUICKLY": GO TO 1035
  1190 GO TO 3000
  1200 NEXT N
  1210 CLS : PRINT AT NT,N0;E$: GO TO 1000
  2010 BORDER N0: PAPER N0: INK N7: CLS : PRINT AT N5,N1;"IT IS NOW PITCH BLACK!"''"IT WOULD BE DANGEROUS TO GO ON"
  2020 LET F=N2: GO SUB 6500
  2040 INPUT "WHAT ARE YOU GOING TO DO ";C$: IF (C$="ON" OR C$="TURN ON TORCH") AND LAMP AND J>40 THEN  LET ON=1: BORDER N7: INK N0: PAPER N7: GO TO 1210
  2060 IF RND>.3[J] THEN  LET E$="YOU JUST FELL INTO A PIT": GO TO 2400
  2070 GO TO 1210
  2400 BORDER N2: PAPER N2: INK N7: CLS : PRINT AT 5,N1;E$'''" YOU APPEAR TO BE DEAD";AT NT,N0;" I'M SORRY THE GAME'S OVER"
  2405 PRINT AT 12,0;" YOU SCORED ";0+(NOT O(N6))+N4*(NOT O(N8))+N8*(NOT O(N7))+NT*(NOT O(9))+100*NOT (O(N7) OR O(9))
  2410 PAUSE N0: BORDER 7: PAPER N7: INK N0: CLS : STOP 
  2520 IF L=N1 THEN  LET L=N0: GO TO 2800
  2540 IF L=9 THEN  GO TO 2900
  2590 GO TO 2690
  2620 IF NOT L THEN  LET N=9: LET L=N1: GO TO 1200
  2690 LET E$="I DON'T KNOW HOW TO DO THAT HERE": GO TO 2940
  2805 LET N=16
  2810 CLS : PRINT '"YOU ARE IN THE SMALL HUT.THERE"'"IS AN OAK TABLE IN HERE."'"ON IT ARE"
  2820 GO SUB 6000
  2830 GO TO 2930
  2900 IF NOT U9 THEN  LET E$="THE GRATE IS LOCKED": GO TO 2940
  2910 LET L=11: GO TO 3300
  2930 LET E$="OK"
  2940 PRINT AT NT,N0;E$: GO TO 1030
  3140 LET D=N7: IF C$="N" OR C$="NORTH" THEN  LET D=N1
  3150 IF C$="E" OR C$="EAST" THEN  LET D=N2
  3160 IF C$="S" OR C$="SOUTH" THEN  LET D=N3
  3170 IF C$="W" OR C$="WEST" THEN  LET D=N4
  3180 IF C$="U" OR C$="UP" THEN  LET D=N5
  3190 IF C$="D" OR C$="DOWN" THEN  LET D=N6
  3195 IF D=N7 OR NOT L THEN  GO TO 5000
  3200 IF CODE T$(L,D)=N0 THEN  LET E$="YOU CAN'T GO IN THAT DIRECTION": GO TO 2940
  3220 IF CODE T$(L,D)>100 THEN  GO TO 2500
  3240 LET L=CODE (T$(L,D))
  3300 LET E$="OK": GO TO 1200
  3705 FOR I=N1 TO CARRY: IF NOT W(I) THEN  LET I=10+I
  3710 NEXT I: GO SUB 4900
  3740 IF NOT G THEN  LET E$="I DONT KNOW WHAT THAT IS": GO TO 2940
  3750 IF O(G)<>L THEN  LET E$="HOW? THAT ISN'T HERE": GO TO 2940
  3760 IF I<9 THEN  LET E$="YOU CANNOT CARRY ANYMORE": GO TO 2940
  3770 LET O(G)=500: LET W(I-11)=G
  3772 IF G=9 THEN  GO TO 7000
  3785 GO TO 3300
  3790 STOP 
  3800 LET F=N7: GO SUB 6500
  3840 INPUT "WHAT NOW? ";C$: IF (C$="KILL" OR C$="KILL SNAKE") AND J>40 THEN  LET E$=" WOW! YOU HAVE KILLED THE SNAKE": LET S(N8)=0: GO TO 1210
  3850 LET E$=" THE SNAKE BIT YOU": GO TO 2400
  3900 LET E$="YOU'VE FALLEN OFF THE LEDGE": GO TO 2400
  4010 IF L=9 AND S(N1) THEN  PRINT "JUST TO ONE SIDE OF IT YOU CAN"'"SEE A TUNNEL GOING DOWN INTO"'"THE EARTH.IT IS COVERED BY A"'"LOCKED GRATE": LET N=N+N4: LET S(N1)=N0
  4020 IF L=NT AND S(N2) THEN  PRINT "YOU NOTICE AN OPTICAL SENSOR"'"IN THE CIELING OF THIS ROOM. ": LET N=N+N5: LET S(N2)=N0
  4030 IF L=17 AND S(N3) THEN  PRINT "LOOKING DOWN YOU SEE A DEEP PIT"'",AT THE BOTTOM IS A HUGE SNAKE."'"THE HALL CONTINUES TO THE"'"NORTH.STRAIGHT ON IS A BALCONY": LET N=N+4: LET S(N3)=N0
  4040 IF L=18 AND S(N4) THEN  PRINT "THE WALLS ARE DECORATED WITH"'"THREE BEAUTIFUL TAPESTRYS.": LET N=N+N2: LET S(N4)=N0
  4050 IF L=12 AND S(N5) THEN  PRINT "THERE IS A WIDE PASSAGE GOING ON"'"& A SMALLER ONE BRANCHING NORTH": LET N=N+N2: LET S(N5)=N0
  4060 IF L=21 AND S(N6) THEN  PRINT "IT OVERLOOKS A WIDE GORGE.EVEN"'"THOUGH THERE'S AN OPENING"'"ON THE OTHER SIDE,THERE SEEMS TO"'"BE NO WAY ACROSS": LET N=N+N4: LET S(N6)=N0
  4070 IF L=15 AND S(N7) THEN  PRINT "THE DOME IS MADE OF MARBLE."'"THERE IS A HONEYCOMB OF SMALL"'"PASSAGES IN EVERY WALL": LET N=N+N3: LET S(N7)=N0
  4080 IF L=22 THEN  PRINT  FLASH N1; INK N1'" THE LEDGE IS VERY UNSAFE ": LET N=N+N3
  4090 IF L=19 AND S(N8) THEN  PRINT  FLASH N1; INK N2;" THE SNAKE HAS SEEN YOU ": LET U=U-1: GO TO 3800
  4500 RETURN 
  4540 GO SUB 4900: IF NOT G THEN  GO TO 3740
  4550 FOR I=N1 TO CARRY: IF W(I)=G THEN  LET I=I+10
  4555 NEXT I
  4560 IF I<9 THEN  LET E$="BUT YOU'RE NOT CARRYING IT": GO TO 2940
  4570 LET W(I-11)=N0
  4590 LET O(G)=L: GO TO 3785
  4905 LET G=N0
  4910 IF C$=O$(N1,N1 TO 13) OR C$=O$(N1,10 TO 13) THEN  LET G=N1
  4915 IF C$=O$(N2,N1 TO 12) OR C$=O$(N2,N8 TO 12) THEN  LET G=N2
  4920 IF C$=O$(N3,N1 TO 15) OR C$=O$(N3,N1 TO N6) THEN  LET G=N3
  4925 IF C$=O$(N4,N7 TO 15) OR C$=O$(N4,12 TO 15) THEN  LET G=N4
  4930 IF C$=O$(N5,N1 TO 14) OR C$=O$(N5,9 TO 14) THEN  LET G=N5
  4935 IF C$=O$(N6,N1 TO 11) OR C$=O$(N6,N8 TO 11) THEN  LET G=N6
  4940 IF C$=O$(N7,N1 TO 13) OR C$=O$(N7,N8 TO 13) THEN  LET G=N7
  4945 IF C$=O$(N8,N1 TO N8) OR C$=O$(N8,N6 TO N8) THEN  LET G=N8
  4950 IF C$=O$(9,N8 TO 12) THEN  LET G=9:
  4999 RETURN 
  5020 GO TO 5030+(C$="OPEN" OR C$="UNLOCK")*1170+(C$="ON")*1010
  5040 GO TO 5050-(C$="IN")*2550-(C$="OUT")*2450+(C$="OFF")*1100
  5110 IF C$="QUIT" THEN  CLS : GO TO 2405
  5115 GO TO 5120+(C$="DROP" OR C$="GET")*830+(C$="LIST")*780
  5125 IF LEN C$<N4 THEN  GO TO 5500
  5130 IF C$( TO N4)="GET " THEN  LET C$=C$(5 TO ): GO TO 3700
  5150 IF LEN C$<N5 THEN  GO TO 5500
  5160 IF C$( TO N5)="DROP " THEN  LET C$=C$(N6 TO ): GO TO 4501
  5170 IF C$( TO N5)="OPEN " THEN  LET C$=C$(N6 TO ): GO TO 6230
  5200 IF LEN C$<N7 THEN  GO TO 5500
  5210 IF C$( TO N7)="UNLOCK " THEN  LET C$=C$(N8 TO ): GO TO 6230
  5870 LET E$="I DON'T KNOW THAT WORD": GO TO 2940
  5910 CLS : LET N=N2: PRINT '"NOW YOU ARE CARRYING";
  5920 FOR I=N1 TO CARRY: IF W(I) THEN  LET N=N+N1: PRINT '"A ";O$(W(I));
  5935 NEXT I: IF N=N2 THEN  PRINT " NOTHING"
  5940 GO TO 3300
  5950 LET T=N0+(C$="GET"): INPUT (C$;" WHAT? ");C$: GO SUB 4900
  5980 GO TO 3700+840*(NOT T)
  6020 PRINT : FOR I=N1 TO OBJ: IF O(I)=L THEN  PRINT "A ";O$(I): LET N=N+N1
  6030 NEXT I: RETURN 
  6050 LET F=N2: GO SUB 6500
  6060 IF J<40 THEN  GO TO 6260
  6070 IF LAMP THEN  LET ON=N1: LET E$="YOUR LAMP IS NOW ON": GO TO 2940
  6080 LET E$="SORRY I CAN'T DO THAT": GO TO 2940
  6120 FOR I=N1 TO CARRY: IF NOT W(I) THEN  LET I=10+I
  6125 NEXT I
  6130 IF I<9 THEN  INPUT "YOU CANNOT CARRY ANY MORE";C$: RETURN 
  6140 LET W(I-11)=P: RETURN 
  6160 LET F=N2: GO SUB 6500
  6170 IF J<40 THEN  GO TO 6080
  6180 IF ON THEN  LET E$="YOUR LAMP IS NOW OFF": LET ON=N0: GO TO 2940
  6190 LET E$="YOUR LAMP ISN'T ON": GO TO 2940
  6220 INPUT (C$;" WHAT? ");C$
  6230 IF L<>9 THEN  GO TO 2690
  6240 IF C$<>"GRATE" THEN  LET E$="WHAT!!": GO TO 2940
  6250 LET F=N1: GO SUB 6500
  6260 IF J<40 THEN  LET E$="YOU CAN'T DO THAT YET!": GO TO 2940
  6270 LET U9=N1: LET E$="THE GRATE IS NOW OPEN": GO TO 2940
  6510 FOR J=N1 TO CARRY: IF W(J)=F THEN  LET J=50
  6520 NEXT J: RETURN 
  6610 FOR J=N1 TO OBJ: IF O(J)=L THEN  LET J=50
  6620 NEXT J: IF J>40 THEN  PRINT "ON THE FLOOR NEARBY THERE IS";: LET N=N+N1: GO SUB 6000
  6650 RETURN 
  7010 IF O(N5)=NT THEN  LET E$="WELL DONE.IT WORKED": LET CI=9: GO TO 1210
  7020 LET E$="OH NO!! IT WAS BOOBYTRAPED.NOW  THE WHOLE CAVE HAS FALLEN IN": GO TO 2400
  7200 IF L>10 THEN  LET E$="TOO LATE THE CAVE'S COLLAPSING": GO TO 2400
  7300 GO TO 1210
  8010 LET F$="IN THE FOREST"
  8050 FOR N=N1 TO ROOMS: READ R$(N),A$: FOR M=N1 TO 6: LET T$(N,M)=CHR$ (CODE A$(M)-65): NEXT M: NEXT N
  8100 FOR N=N1 TO OBJ: READ O(N),O$(N): NEXT N: RETURN 
  8510 DATA "OUTSIDE THE SMALL HUT","CDEFCE"
  8520 DATA "ON A HILL ABOVE THE HUT","DDBFAB",F$,"CGGBCA"
  8535 DATA "IN A STEEP VALLEY","BGHIBH","ON A WOODED HILLSIDE","CBIICA",F$,"DGKGAA","BY A LITTLE STREAM","EKKJEA",F$,"FKIIFE"
  8585 DATA "IN A SMALL CLEARING","IHIIAVAL ",F$,"GKKIKH"
  8605 DATA "IN THE GLOOMY TUNNEL","AAAMJM","IN A ROCKY CAVERN","NLAOLN","IN A SLOPING N/S PASSAGE","PAMAMP","IN AN E/W PASSAGE"
  8645 DATA "AMAQAA","IN A DOMED CHAMBER","AAAANA","IN A STONE CORRIDOR","AOARAA","IN THE GREAT HALL","SQAVAT","AT THE BACK OF THE HALL","AARAAA"
  8685 DATA "IN THE SNAKEPIT!!","AAUARA","IN A TINY ANTECHAMBER","TAAAAA","ON THE BALCONY","ARAAAW","ON A VERY NARROW LEDGE","AAAAVA"
  8800 DATA N0,"BUNCH OF KEYS",N0,"POCKET TORCH",N0,"BOTTLE OF WATER",N0,"RUSTY IRON WAND"
  8840 DATA INT (RND*N3)*N2+N6,"CRACKED MIRROR",11,"COPPER COIN",22,"SILVER DAGGER",15,"GOLD KEY",NT,"WOODEN CHEST"
  9999 SAVE "ADVENTURE" LINE 2