- 浏览: 1704478 次
- 性别:
- 来自: 杭州699号
文章分类
最新评论
-
莫莫摸:
为什么不用dubbo
RCP数据传输模型回顾 -
大胡子爸爸:
String, Class 都实现了Serializable接 ...
RPC框架几行代码就够了 -
lss598018587:
谢谢大神分享,比起新手看复杂的dubbo框架还不如看大神的这一 ...
RPC框架几行代码就够了 -
15606915740:
你好,请问一下。<dubbo:consumer filt ...
Dubbo文档 -
joqk12345:
...
一些设计上的基本常识
RPG“伏魔剑”源程序
0 :
1 GRAPH
2 DIM WZ(5,21),DM$(4,19):X(6)=3:Y(6)=19
6 MO=100 :GOSUB 4101: GOTO 30
10 IF T$="b" THEN T=1:19
11 IF T$="n" THEN T=2:19
12 IF T$="m" THEN T=3:19
13 IF T$="g" THEN T=4:19
14 IF T$="h" THEN T=5:19
15 IF T$="j" THEN T=6:19
16 T=10
19 RETURN
30 LOCATE 1,1:PRINT " 《伏魔英雄传》"," 超经典RPG互动游戏"," V1.2增强版"
40 LOCATE 4,4:PRINT " 正在读取数据";
50 BOX 40,70,120,73,0,2
54 OPEN "FMYXZDATA" FOR INPUT AS #1
55 INPUT #1,NDFL$: FOR A=1 TO 10:INPUT #1,AE$(A):B=0.808*A+41:LINE B,70,B,73:NEXT
56 FOR A=1 TO 6:INPUT #1,YPM$(A):C=0.808*A+B:LINE C,70,C,73:NEXT :INPUT #1,YDTX$
58 FOR A=1 TO 2:INPUT #1,MAP$(A):B=0.808*A+C:LINE B,70,B,73:NEXT
60 FOR A=1 TO 4:INPUT #1,CD$(A):C=0.808*A+B:LINE C,70,C,73:NEXT
70 FOR A=1 TO 9:INPUT #1,HG$(A):B=0.808*A+C:LINE B,70,B,73:NEXT
80 FOR A=1 TO 7:INPUT #1,ZP$(A):C=0.808*A+B:LINE C,70,C,73:NEXT
90 FOR A=1 TO 9:INPUT #1,DR$(A):B=0.808*A+C:LINE B,70,B,73:NEXT
100 FOR A=1 TO 5:INPUT #1,MZ$(A):C=0.808*A+B:LINE C,70,C,73:NEXT
110 FOR A=1 TO 5:INPUT #1,GZ$(A):B=0.808*A+C:LINE B,70,B,73:NEXT
120 FOR A=1 TO 6:INPUT #1,WG$(A):C=0.808*A+B:LINE C,70,C,73:NEXT
130 FOR A=1 TO 6:INPUT #1,YP$(A):B=0.808*A+C:LINE B,70,B,73:NEXT
140 FOR A=1 TO 4:INPUT #1,MF$(A):C=0.808*A+B:LINE C,70,C,73:NEXT
150 FOR A=-1 TO 1 STEP 2: FOR AA=1 TO 9 STEP 2
151 INPUT #1,DM$((2.5+A)+A*0.5,AA*2+A)
152 B=0.808*A+C:LINE B,70,B,73:NEXT :NEXT
160 FOR A=1 TO 5:INPUT #1,AAA$(A):C=0.808*A+B:LINE C,70,C,73:NEXT
165 FOR A=1 TO 10:INPUT #1,RW$(A):INPUT #1,NA$(A):B=0.808*A+C:LINE B,70,B,73:NEXT
185 FOR A=1 TO 6:INPUT #1,YP(A):C=0.808*A+B:LINE C,70,C,73:INPUT #1,GX(A):NEXT
186 FOR A=1 TO 4:INPUT #1,MF(A):INPUT #1,XG(A):B=0.808*A+C:LINE B,70,B,73:NEXT
189 INPUT #1,AA
190 INPUT #1,BB
191 FOR A=1 TO 4:INPUT #1,BE$(A):NEXT
200 CLOSE #1
210 CLS:PRINT AAA$(1);
220 T$=INKEY$:A=0:GOSUB 10
225 IF T=1 THEN GOSUB 9175
230 ON T GOTO 300,9110,9800:BEEP: GOTO 220
300 CLS:PRINT MAP$(1);:POKE 803,AA:PRINT ;
305 LOCATE 1,9:PRINT RW$(2);: FOR I=1 TO 3000:NEXT
310 FOR I=2 TO 4:LOCATE I-1,9:PRINT "※";:LOCATE I,9:PRINT RW$(2);
315 FOR J=1 TO 2000:NEXT :NEXT : FOR I=1 TO 1000:NEXT
320 CLS:PRINT CD$(1);:T$=INKEY$
325 CLS:PRINT MAP$(1);:POKE 803,AA:PRINT ;:LOCATE 4,9:PRINT RW$(2);
330 FOR I=0 TO 80:LINE 0,I,160,I,2: FOR J=1 TO 100:NEXT :NEXT
335 CLS:PRINT MAP$(1);:POKE 803,AA:PRINT ;:BOX 0,0,160,80,1,2
340 FOR I=0 TO 80:LINE 0,I,160,I,2: FOR J=1 TO 100:NEXT :NEXT
345 FOR I=1 TO 1000:NEXT
350 FOR I=2 TO 4:CLS:PRINT CD$(I);:T$=INKEY$:NEXT
355 FOR I=1 TO 1000:NEXT
360 CLS:PRINT MAP$(2);:POKE 803,BB:PRINT ;: FOR I=1 TO 1000:NEXT
365 LOCATE 5,11:PRINT RW$(3);: FOR I=1 TO 2000:NEXT
370 LOCATE 5,11:PRINT " ";:LOCATE 4,11:PRINT RW$(3);
380 FOR J=1 TO 2000:NEXT
381 LOCATE 4,11:PRINT " ";:LOCATE 3,11:PRINT RW$(3);: FOR I=1 TO 2000:NEXT
385 FOR I=1 TO 3:CLS:PRINT HG$(I);:T$=INKEY$:NEXT
390 CLS:PRINT MAP$(2);:POKE 803,BB:PRINT ;
395 LOCATE 3,11:PRINT RW$(3);: FOR I=1 TO 2000:NEXT
400 LOCATE 4,11:PRINT RW$(3);:LOCATE 3,11:PRINT " ";: FOR I=1 TO 2000:NEXT
405 LOCATE 4,13:PRINT RW$(3);:LOCATE 4,11:PRINT " ";: FOR I=1 TO 2000:NEXT
410 LOCATE 5,11:PRINT RW$(1);: FOR I=1 TO 2000:NEXT
415 LOCATE 4,11:PRINT RW$(1);:LOCATE 5,11:PRINT " ";
420 FOR J=1 TO 2000:NEXT
421 LOCATE 3,11:PRINT RW$(1);:LOCATE 4,11:PRINT " ";
422 FOR J=1 TO 2000:NEXT
425 FOR I=4 TO 9:CLS:PRINT HG$(I);:T$=INKEY$:NEXT
500 X=3:Y=11:Q=Q+1:B=1
505 GET #1,1
506 CLS:PRINT MAP$;:LOCATE X,Y:PRINT RW$(1);
507 LOCATE 5,1:PRINT DM$(X,Y);" ";
510 T=ASC(INKEY$):IF (T>19 AND T<24) OR (T=13 OR T=113) THEN 515 ELSE BEEP:510
515 IF T=20 THEN X=X-1:IF X<1 THEN BEEP:X=1:505
520 IF T=21 THEN X=X+1:IF X>4 THEN BEEP:X=4:505
525 IF T=22 THEN Y=Y+2:IF Y>19 THEN BEEP:Y=19:505
530 IF T=23 THEN Y=Y-2:IF Y<1 THEN BEEP:Y=1:505
535 IF T=113 THEN GOSUB 9300: GOTO 505
536 IF T>13 THEN 505
540 IF X=4 THEN 570
541 IF X=2 OR X=3 THEN BEEP:505
545 IF Y=1 THEN 600
550 IF Y=5 THEN 700
555 IF Y=9 THEN 800
560 IF Y=13 THEN 4500
561 IF Y=17 THEN 590
565 BEEP: GOTO 505
570 IF ((Y=3)+(Y=7)+(Y=15)+(Y=19)) THEN 590
575 IF Y=11 THEN 576 ELSE 580
576 IF A=0 THEN 2000 ELSE IF A=1 THEN 5000
580 BEEP: GOTO 505
590 CLS:PRINT "请问你找谁?";:T$=INKEY$: GOTO 505
600 G=1
601 C=17:D=16:PP=1
602 CLS:PRINT "********";DM$(X,Y);:LOCATE 1,13:PRINT "********";YDTX$;
606 LOCATE 5,3:PRINT "× × ";
611 LOCATE 5,1:PRINT YPM$(PP);"×";YPS(PP);
612 LOCATE 5,13:PRINT MO;:BOX C,D,C+48,D+15,1,2:E=C:F=D
620 T=ASC(INKEY$):IF (T<24 AND T>19) OR T=13 OR T=27 THEN 625 ELSE BEEP:620
625 IF T=20 THEN D=D-16:PP=PP-1:IF D<16 THEN D=48:PP=PP+3
630 IF T=21 THEN D=D+16:PP=PP+1:IF D>48 THEN D=16:PP=PP-3
635 IF T=23 THEN C=C-80:PP=PP-3:IF C<17 THEN C=97:PP=PP+6
640 IF T=22 THEN C=C+80:PP=PP+3:IF C>97 THEN C=17:PP=PP-6
645 IF T=27 THEN 505
647 IF T>13 THEN 678
650 IF G=2 THEN 4550
655 IF MO<YP(PP) THEN BEEP:LOCATE 5,1:PRINT AAA$(3);:T$=INKEY$:606
665 MO=MO-YP(PP):YPS(PP)=YPS(PP)+1
675 IF YPS(1)+YPS(2)+YPS(3)+YPS(4)+YPS(5)+YPS(6)>50 THEN YPS(PP)=YPS(PP)-1:MO=MO+YP(PP):680
678 BOX E,F,E+48,F+15,1,2: GOTO 606
680 LOCATE 5,1:PRINT "携带的物品太多了!";:T$=INKEY$: GOTO 606
700 CLS:PRINT "********客栈********";AAA$(2);
710 T$=INKEY$
720 IF T$="n" THEN 505 ELSE IF T$<>"y" THEN BEEP:710
730 IF MO<200 THEN CLS:PRINT "对不起!你没那么多钱啊!我们这不赊账!再见!":731 ELSE 735
731 T$=INKEY$: GOTO 505
735 FOR II=-1 TO 0: FOR I=0 TO 80: FOR J=1 TO 100:NEXT :LINE 0,I,160,I,(-2)*II:NEXT :NEXT
740 MO=MO-200:MP=MPP:HP=HPP:CLS:PRINT "欢迎下次再来!":T$=INKEY$: GOTO 505
800 IF Q>5 THEN QT=QT+1:IF QT>3 THEN QT=3
801 IF QT=3 THEN CLS:PRINT ZP$(7):T$=INKEY$:505
805 IF Q=5 AND QT=2 THEN CLS:PRINT ZP$(6);:T$=INKEY$:QT=3:505
820 CLS:PRINT ZP$(Q);:T$=INKEY$: GOTO 505
1100 G=G+7:H=H+7
1120 FOR J=1 TO 0 STEP -1: FOR JJ=0 TO 7:BOX G-JJ,H-JJ,G+JJ,H+JJ,1,J
1130 FOR JJJ=1 TO 150:NEXT :NEXT :NEXT
1135 RETURN
1200 BOX 144,32,159,47:LOCATE 5,1:PRINT NB$(6);KP(6);"/";KPP(6);: FOR I=1 TO 2500
1205 NEXT :IF Q=10 THEN 1206 ELSE 1210
1206 I=RND(1):IF I>0.4 THEN 1240
1207 I=ABS(X(1)-X(6)):J=ABS(Y(1)-Y(6)):IF I=0 AND J=2 THEN 1245
1208 IF I=1 AND J=0 THEN 1245 ELSE 2019
1210 IF Y(1)=15 AND X(1)=3 THEN 1240
1211 IF Y(1)=17 THEN 1220
1212 IF Y(1)=19 THEN 1230
1213 GOTO 2019
1220 IF X(1)=2 OR X(1)=4 THEN 1240
1221 IF X(1)=3 THEN 1245
1222 GOTO 2019
1230 IF X(1)<>1 THEN 1245
1235 IF X(1)>14 THEN 1240
1240 ON Q GOTO 1500,1600,1500,1600,1500,1600,1500,1600,1500,1700
1241 GG=Q*86+INT(RND(1)*(10-Q)*8): GOTO 2940
1245 GG=Q*69+INT(RND(1)*(10-Q)*3): GOTO 8400
1500 II=0:H=X(1)*16-8:G=Y(1)*8-3
1510 FOR I=20 TO 160 STEP 2:II=II+0.2:ELLIPSE I,31,II,II*2
1520 FOR J=1 TO 50:NEXT :NEXT
1524 FOR I=-1 TO 0: FOR J=0 TO 7:CIRCLE G+4,H,J,1,-1*I: FOR II=1 TO 50:NEXT :NEXT :NEXT
1530 GOSUB 9995: GOTO 1241
1600 FOR II=20 TO 120:I=0.23*II:J=0.08*II
1610 DRAW II,35-I:DRAW II,33-J:DRAW II,29+J:DRAW II,27+I
1620 FOR JJ=1 TO 5:NEXT :NEXT
1630 FOR II=1 TO 0 STEP -1: FOR I=0 TO 7
1640 CIRCLE 120,8,I,1,II:CIRCLE 120,24,I,1,II:CIRCLE 120,40,I,1,II:CIRCLE 120,56,I,1,II
1650 CIRCLE 136,8,I,1,II:CIRCLE 136,24,I,1,II:CIRCLE 136,40,I,1,II:CIRCLE 136,56,I,1,II
1660 CIRCLE 152,8,I,1,II:CIRCLE 152,24,I,1,II:CIRCLE 152,40,I,1,II:CIRCLE 152,56,I,1,II
1680 NEXT :NEXT :GOSUB 9995: GOTO 1241
1700 FOR I=144 TO 80 STEP -1:DRAW I,I*0.625-50:FOR II=1 TO 50 :NEXT:NEXT
1702 FOR II=0 TO 60:LINE 76,II,84,II:FOR I=1 TO 50:NEXT:NEXT
1705 FOR II=80 TO 160:LINE II,52,II,60:LINE 160-II,52,160-II,60:NEXT
1710 FOR II=56 TO 6 STEP -16:FOR J=1 TO 0 STEP -1:FOR JJ=0 TO 7:FOR I= 8 TO 160 STEP 16
1715 CIRCLE I,II,JJ,1,J:NEXT:NEXT:NEXT:GOSUB 9995:NEXT
1720 GOSUB 9995:GOTO 1241
1999 IF Q=10 THEN KP(6)=40000:KPP(6)=KP(6):2001 ELSE 2001
2000 X(1)=1:Y(1)=1:R=R+1:RR=0:NPC$(1)=RW$(1):KP(6)=Q*2678:KPP(6)=KP(6): GOTO 1999
2001 FOR I=2 TO 5:KP(I)=Q*50+R*10:J=INT(RND(1)*7)+4:NPC$(I)=RW$(J):NB$(I)=NA$(J):X(I)=I-1
2002 KPP(I)=KP(I):Y(I)=INT(RND(1)*10)*2+1:IF Y(I)=Y(1) AND X(I)=X(1) THEN 2002
2003 IF R=INT(R/5)*5 AND Y(I)=Y(6) AND X(I)=X(6) THEN 2002
2004 NEXT :GJL=Q*14+R*4:VW=4:WV=4:S=0
2005 GET #1,R+1:B=0:IF R=20 THEN A=1
2009 IF R<>INT(R/5)*5 THEN 2019
2010 NB$(6)=AE$(Q):IF R<50 THEN 2015
2011 IF RR=1 THEN 2019 ELSE FOR I=1 TO 5:CLS:PRINT MZ$(I);:T$=INKEY$:NEXT :RR=0: GOTO 2019
2015 IF RR=0 THEN CLS:PRINT DR$(Q):T$=INKEY$:RR=1
2019 GOSUB 9995:IF VW=0 THEN RR=1:2001
2020 IF KP(6)>0 THEN 2025 ELSE CLS:PRINT AE$(Q);"被击败。"
2021 IF Q<5 THEN PRINT "得到";AE$(Q):LOCATE 2,9:PRINT "灵珠";BE$(Q);: GOTO 2023
2022 IF R=50 THEN T$=INKEY$: GOTO 5100
2023 T$=INKEY$: GOTO 500
2025 FOR I=1 TO 4: FOR J=1 TO 19 STEP 2:WZ(I,J)=0:NEXT :NEXT
2028 FOR I=2 TO 5:IF KP(I)=0 THEN 2029 ELSE WZ(X(I),Y(I))=I
2029 NEXT :IF R=INT(R/5)*5 THEN WZ(3,19)=6
2041 S=S+1:IF S=6 AND R=INT(R/5)*5 THEN 1200
2042 IF S=1 THEN 3000 ELSE IF S>5 THEN S=0:2041 ELSE IF KP(S)=0 THEN 2041
2043 GG=GJL: GOTO 2051
2050 GOTO 2019
2051 GOSUB 9994
2052 LOCATE 5,1:PRINT NB$(S);KP(S);"/";KPP(S);" ";:C=Y(S)*8-8:D=X(S)*16-16
2053 BOX C,D,C+15,D+15:IF X(S)>X(1) AND Y(S)>Y(1) THEN 2100
2055 IF X(S)>X(1) AND Y(S)=Y(1) THEN 2200
2060 IF X(S)>X(1) AND Y(S)<Y(1) THEN 2300
2065 IF X(S)=X(1) AND Y(S)>Y(1) THEN 2400
2070 IF X(S)=X(1) AND Y(S)<Y(1) THEN 2500
2075 IF X(S)<X(1) AND Y(S)>Y(1) THEN 2600
2080 IF X(S)<X(1) AND Y(S)=Y(1) THEN 2700
2085 IF X(S)<X(1) AND Y(S)<Y(1) THEN 2800
2100 E=ABS(X(1)-X(S)):F=ABS(Y(1)-Y(S))/2
2110 IF E+F>3 THEN 2150
2120 IF E=1 AND F=2 THEN GOSUB 7000: GOTO 8800
2130 IF E=1 AND F=1 THEN GOSUB 7050: GOTO 8800
2140 IF E=2 AND F=1 THEN GOSUB 7100: GOTO 8800
2150 IF E=1 THEN GOSUB 7600: GOTO 2050
2160 IF E>1 THEN GOSUB 7650: GOTO 2050
2200 E=ABS(X(1)-X(S))
2220 IF E=1 THEN 8800
2230 IF E=2 THEN GOSUB 8000: GOTO 8800
2240 IF E=3 THEN GOSUB 8050: GOTO 8800
2300 E=ABS(X(1)-X(S)):F=ABS(Y(1)-Y(S))/2
2310 IF E+F>3 THEN 2350
2320 IF E=1 AND F=2 THEN GOSUB 7150: GOTO 8800
2330 IF E=1 AND F=1 THEN GOSUB 7200: GOTO 8800
2340 IF E=2 AND F=1 THEN GOSUB 7250: GOTO 8800
2350 IF E=1 THEN GOSUB 7700: GOTO 2050
2360 IF E>1 THEN GOSUB 7750: GOTO 2050
2400 F=ABS(Y(1)-Y(S))/2:E=0
2420 IF F=1 THEN E=1:8800
2430 IF F=2 THEN GOSUB 8100: GOTO 8800
2440 IF F=3 THEN GOSUB 8150: GOTO 8800
2450 GOSUB 8600: GOTO 2050
2500 F=ABS(Y(1)-Y(S))/2:E=0
2520 IF F=1 THEN E=1:8800
2530 IF F=2 THEN GOSUB 8200: GOTO 8800
2540 IF F=3 THEN GOSUB 8250: GOTO 8800
2550 GOSUB 8500: GOTO 2050
2600 E=ABS(X(1)-X(S)):F=ABS(Y(1)-Y(S))/2
2610 IF E+F>3 THEN 2650
2620 IF E=1 AND F=2 THEN GOSUB 7300: GOTO 8800
2630 IF E=1 AND F=1 THEN GOSUB 7350: GOTO 8800
2640 IF E=2 AND F=1 THEN GOSUB 7400: GOTO 8800
2650 IF E=1 THEN GOSUB 7800: GOTO 2050
2660 IF E>1 THEN GOSUB 7850: GOTO 2050
2700 E=ABS(X(1)-X(S)):F=ABS(Y(1)-Y(S))/2
2720 IF E=1 THEN 8800
2730 IF E=2 THEN GOSUB 8300: GOTO 8800
2740 IF E=3 THEN GOSUB 8350: GOTO 8800
2800 E=ABS(X(1)-X(S)):F=ABS(Y(1)-Y(S))/2
2810 IF E+F>3 THEN 2850
2820 IF E=1 AND F=2 THEN GOSUB 7450: GOTO 8800
2830 IF E=1 AND F=1 THEN GOSUB 7500: GOTO 8800
2840 IF E=2 AND F=1 THEN GOSUB 7550: GOTO 8800
2850 IF E=1 THEN GOSUB 7900: GOTO 2050
2860 IF E>1 THEN GOSUB 7950: GOTO 2050
2900 X(S)=X(S)-1:GOSUB 9995: FOR JJ=1 TO 1000:NEXT :RETURN
2910 X(S)=X(S)+1:GOSUB 9995: FOR JJ=1 TO 1000:NEXT :RETURN
2920 Y(S)=Y(S)-2:GOSUB 9995: FOR JJ=1 TO 1000:NEXT :RETURN
2930 Y(S)=Y(S)+2:GOSUB 9995: FOR JJ=1 TO 1000:NEXT :RETURN
2940 GOSUB 9995:HPPP=GG+INT(RND(1)*DJ/2):HP=HP-HPPP:IF HP>0 THEN 2950 ELSE 2960
2950 GOSUB 9994:LOCATE 5,1:PRINT "你的体力下降了";HPPP;: FOR I=1 TO 1500:NEXT : GOTO 2025
2960 CLS:LOCATE 2,5:PRINT "你的体力不支,"," 昏了过去……"
2970 FOR I=0 TO 80:LINE 0,I,160,I,2: FOR J=0 TO 100:NEXT :NEXT
2980 T$=INKEY$:CLOSE #1:POKE 199,155
3000 W=0:V=0
3005 GOSUB 9994
3006 LOCATE 5,1:PRINT NA$(1);"HP:";HP;"/";HPP;
3010 T=ASC(INKEY$):IF (T>19 AND T<24) OR (T=13 OR T=113) THEN 3020 ELSE BEEP:3010
3020 IF T=13 THEN T=24
3025 IF T=113 THEN T=25
3030 ON T-19 GOTO 3100,3200,3400,3300,3600,3040
3040 GOSUB 9900: GOSUB 9995:GOTO 3006
3100 X(S)=X(S)-1:W=W-1:IF X(S)=0 THEN BEEP:X(S)=1:W=W+1
3102 IF ABS(W)+ABS(V)>3 OR WZ(X(S),Y(S))>0 THEN X(S)=X(S)+1:W=W+1:BEEP:3010
3110 GOSUB 9995: GOTO 3010
3200 X(S)=X(S)+1:W=W+1:IF X(S)=5 THEN BEEP:X(S)=4:W=W-1
3210 IF ABS(W)+ABS(V)>3 OR WZ(X(S),Y(S))>0 THEN X(S)=X(S)-1:W=W-1:BEEP:3010
3220 IF X(S)=4 AND Y(S)=19 AND R<>INT(R/5)*5 THEN RR=0:2000
3226 GOSUB 9995: GOTO 3010
3300 Y(S)=Y(S)-2:V=V-1:IF Y(S)<1 THEN BEEP:Y(S)=1:V=V+1
3310 IF ABS(W)+ABS(V)>3 OR WZ(X(S),Y(S))>0 THEN Y(S)=Y(S)+2:V=V+1:BEEP:3010
3326 GOSUB 9995: GOTO 3010
3400 Y(S)=Y(S)+2:V=V+1:IF Y(S)>19 THEN BEEP:Y(S)=19:V=V-1
3410 IF ABS(W)+ABS(V)>3 OR WZ(X(S),Y(S))>0 THEN Y(S)=Y(S)-2:V=V-1:BEEP:3010
3425 IF X(S)=4 AND Y(S)=19 AND R<>INT(R/5)*5 THEN RR=0:2000
3426 GOSUB 9995: GOTO 3010
3500 GOSUB 9400: GOTO 3005
3600 GOSUB 9994:LOCATE 5,1:PRINT "①攻 ②法 ③物 ④防";
3610 T$=INKEY$:IF T$=CHR$(27) THEN 3005
3611 GOSUB 10:ON T GOTO 3670,3900,3660,3620:BEEP: GOTO 3610
3620 U=0: GOTO 2019
3660 GOSUB 9400:GOSUB 9995:IF T$="Y" THEN 2019 ELSE 3600
3670 PP=1=5
3700 IF X(1)-1=0 THEN 3702
3701 IF WZ(X(1)-1,Y(1))<>0 THEN U=U+1:UU(U)=WZ(X(1)-1,Y(1))
3702 IF X(1)+1=5 THEN 3704
3703 IF WZ(X(1)+1,Y(1))<>0 THEN U=U+1:UU(U)=WZ(X(1)+1,Y(1))
3704 IF Y(1)-2<0 THEN 3706
3705 IF WZ(X(1),Y(1)-2)<>0 THEN U=U+1:UU(U)=WZ(X(1),Y(1)-2)
3706 IF Y(1)+2=21 THEN 3708
3707 IF WZ(X(1),Y(1)+2)<>0 THEN U=U+1:UU(U)=WZ(X(1),Y(1)+2)
3708 K=1
3709 IF PP=2 AND MP<MF(1) THEN BEEP:LOCATE 5,1:PRINT NDFL$;:T$=INKEY$: GOTO 3600
3712 IF U>0 THEN 3714
3713 BEEP:LOCATE 5,1:PRINT "目标不在范围内! ";:T$=INKEY$: GOTO 3600
3714 GOSUB 9994:LOCATE 5,1:PRINT NB$(UU(K));
3715 PRINT KP(UU(K));"/";KPP(UU(K));:G=Y(UU(K))*8-8
3716 H=X(UU(K))*16-16:BOX G,H,G+15,H+15
3717 T=ASC(INKEY$):IF (T>19 AND T<24) OR (T=27 OR T=13) THEN 3719 ELSE BEEP:3717
3719 IF T=27 THEN U=0:3600
3720 IF U=0 THEN 3712
3725 IF T<>13 THEN 3735
3726 IF T=13 THEN ON PP GOTO 3730,6001
3730 IF T=13 THEN GOSUB 1100:GGLL=GGL
3731 KP=KP(UU(K)):KPPP=GGLL+INT(RND(1)*DJ)
3732 KP(UU(K))=KP(UU(K))-KPPP:IF KP(UU(K))>0 THEN 3733 ELSE 3790
3733 GOSUB 9995:GOSUB 9994:LOCATE 5,1:PRINT NPC$(UU(K));"体力下降了";KPPP;:T$=INKEY$: GOTO 3820
3735 K=K+1:BOX G,H,G+15,H+15,0,2:IF K>U THEN K=1
3740 ON P GOTO 3714,3714,6536,6940,3714
3790 WV=VW
3791 KP(UU(K))=0:JP=KPP(UU(K))+INT(RND(1)*DJ):JY=JY+JP:WZ(X(UU(K)),Y(UU(K)))=0:VW=VW-1
3792 I=INT(RND(1)*200):IF I>49 THEN MO=MO+INT(KPP(UU(K))/7)+INT(RND(1)*(DJ/2)):PC$="金币"
3795 IF I=49 THEN YPS(3)=YPS(3)+1:PC$=YP$(3)
3797 IF I=48 THEN YPS(6)=YPS(6)+1:PC$=YP$(6)
3801 IF I<48 AND I>26 THEN YPS(4)=YPS(4)+1:PC$=YP$(4)
3802 IF I<27 AND I>5 THEN YPS(1)=YPS(1)+1:PC$=YP$(1)
3803 IF I<6 AND I>2 THEN YPS(2)=YPS(2)+1:PC$=YP$(2)
3805 IF I<3 THEN YP(5)=YP(5)+1:PC$=YP$(5)
3806 IF UU(K)<6 THEN 3808 ELSE LOCATE 5,1:PRINT NB$(6);:LOCATE 5,9:PRINT "被打败了!";
3807 T$=INKEY$:LOCATE 5,1: GOTO 3809
3808 GOSUB 9995:LOCATE 5,1:PRINT NB$(UU(K));"被打败了!";:T$=INKEY$:LOCATE 5,1
3809 PRINT "得到";PC$;" ";:T$=INKEY$:LOCATE 5,1:PRINT "获得经验值";JP;
3810 T$=INKEY$:IF JY>=JYZ THEN GOSUB 4100
3820 IF P=3 THEN 6536 ELSE IF P=4 THEN 6940 ELSE 3620
3900 P=1:GOSUB 9994
3910 LOCATE 5,1:PRINT MF$(P);" ";
3920 T=ASC(INKEY$):IF T=20 OR T=21 OR T=13 OR T=27 THEN 3921 ELSE 3920
3921 IF T=21 THEN P=P+1:IF P>4 THEN BEEP:P=4:3920
3922 IF T=20 THEN P=P-1:IF P<1 THEN BEEP:P=1:3920
3923 IF T=27 THEN GOSUB 9995: GOTO 3600
3924 IF T<>13 THEN 3910
3925 ON P GOTO 6000,6400,6400,6900
4100 I=HPP:J=MPP:G=GGL:GOSUB 4101:GOTO 4110
4101 DJ=DJ+1:JYZ=DJ*300-200:HPP=DJ*38+50-DJ*4:MPP=DJ*19+(40-DJ*6):GGL=DJ*21+(40-DJ*9)
4105 HP=HPP:MP=MPP:RETURN
4110 LOCATE 5,1:PRINT "你升级了!";DJ;"级 ";:T$=INKEY$:JY=0:GOSUB 9994
4111 LOCATE 5,1:PRINT "体力+";HPP-I;:T$=INKEY$:GOSUB 9994
4112 LOCATE 5,1:PRINT "法力+";MPP-J;:T$=INKEY$:GOSUB 9994
4113 LOCATE 5,1:PRINT "攻击力+";GGL-G;:T$=INKEY$
4115 RETURN
4500 G=2: GOTO 601
4550 IF YPS(PP)<=0 THEN BEEP: GOTO 620
4560 YPS(PP)=YPS(PP)-1:MO=MO+INT(YP(PP)/2): GOTO 606
5000 CLS:PRINT MAP$(1);:POKE 803,AA:PRINT ;
5002 LOCATE 1,3:PRINT "※※※※※※※";:LOCATE 3,1:PRINT RW$(1);
5004 LOCATE 2,19:PRINT RW$(2);:LOCATE 3,19:PRINT "";: FOR I=1 TO 5000:NEXT
5006 FOR I=1 TO 2:CLS:PRINT GZ$(I);:T$=INKEY$:NEXT
5008 CLS:PRINT MAP$(1);:POKE 803,AA:PRINT ;
5010 LOCATE 1,3:PRINT "※※※※※※※";:LOCATE 3,1:PRINT RW$(1);
5011 LOCATE 3,19:PRINT "";:LOCATE 2,19:PRINT RW$(2);
5012 LOCATE 3,3:PRINT "";:LOCATE 4,3:PRINT "";: FOR I=1 TO 2000:NEXT
5014 FOR I=3 TO 13 STEP 2
5016 LOCATE 3,I:PRINT "※";:LOCATE 4,I:PRINT "※";
5020 FOR J=1 TO 2000:NEXT :NEXT
5022 LOCATE 3,15:PRINT "※※※";:LOCATE 4,15:PRINT "※※※";: FOR I=1 TO 5000
5024 NEXT : FOR I=3 TO 9 STEP 2:II=20-I
5026 LOCATE 3,I-2:PRINT "※";
5028 LOCATE 2,II:PRINT "※";
5030 FOR J=1 TO 2000:NEXT :NEXT :LOCATE 3,9:PRINT "※";
5031 LOCATE 2,9:PRINT RW$(1): FOR I=1 TO 5000:NEXT
5032 FOR I=3 TO 5:CLS:PRINT GZ$(I):T$=INKEY$:NEXT
5034 CLS:PRINT MAP$(2);:POKE 803,BB:PRINT ;
5036 FOR I=5 TO 2 STEP -1: FOR J=1 TO 2000:NEXT :II=I+1:IF II>5 THEN II=5
5038 LOCATE II,11:PRINT " ";:LOCATE I,11:PRINT RW$(3);:NEXT
5040 CLS:PRINT WG$(1);:T$=INKEY$
5042 CLS:PRINT MAP$(2);:POKE 803,BB:PRINT ;:LOCATE 3,11:PRINT RW$(3);
5044 FOR I=1 TO 3: FOR J=1 TO 2000:NEXT
5046 ON I GOTO 5048,5050,5052
5048 LOCATE 3,11:PRINT RW$(3): GOTO 5054
5050 LOCATE 4,11:PRINT RW$(3);:LOCATE 3,11:PRINT " ";: GOTO 5054
5052 LOCATE 4,13:PRINT RW$(3);:LOCATE 4,11:PRINT " ";
5054 NEXT :LOCATE 5,11:PRINT RW$(2);: FOR I=1 TO 2000:NEXT
5055 LOCATE 4,11:PRINT RW$(2);:LOCATE 5,11:PRINT RW$(1);: FOR I=1 TO 2000:NEXT
5056 LOCATE 3,11:PRINT RW$(2);:LOCATE 4,11:PRINT RW$(1):LOCATE 5,11:PRINT " ";
5058 FOR I=1 TO 2000:NEXT
5060 FOR I=2 TO 6:CLS:PRINT WG$(I);:T$=INKEY$:NEXT
5062 A=0:X=3:Y=11:QT=2 : GOTO 505
5100 CLS:PRINT MAP$(1);:POKE 803,AA:PRINT ;
5102 LOCATE 1,3:PRINT "※※※※※※※";
5104 LOCATE 4,1:PRINT RW$(2);:LOCATE 4,19:PRINT RW$(1);: FOR I=1 TO 2000:NEXT
5106 FOR I=3 TO 9 STEP 2:II=20-I
5108 LOCATE 4,I-2:PRINT "※";:LOCATE 4,II:PRINT "※";
5110 FOR J=1 TO 2000:NEXT :NEXT
5112 FOR I=1 TO 10:CIRCLE 79+I,48-I*3,I,1:CIRCLE 81-I,48-I*3,I,1
5114 FOR J=1 TO 400:NEXT :NEXT :T$=INKEY$:LOCATE 3,8:PRINT "全剧终":T$=INKEY$
5116 FOR I=0 TO 80:LINE I,0,I,80:LINE 160-I,0,160-I,80:NEXT : FOR I=1 TO 2000:NEXT
5118 GOTO 9800
6000 PP=2: GOTO 3700
6001 G=Y(UU(K))*8-5:H=X(UU(K))*16-8
6010 FOR I=0 TO 63:LINE G,I,G+8,I: FOR J=1 TO 50:NEXT :NEXT
6020 FOR I=-1 TO 0: FOR J=0 TO 7:CIRCLE G+4,H,J,1,-1*I: FOR II=1 TO 50:NEXT :NEXT :NEXT
6030 GGLL=XG(1):MP=MP-MF(1):GOSUB 9995: GOTO 3731
6100 G=Y(UU(K))*8:H=X(UU(K))*16-8: FOR I=7 TO 55 STEP 4
6110 CIRCLE G,I,8,0,1: FOR J=1 TO 150:NEXT :NEXT
6115 FOR I=-1 TO 0: FOR J=0 TO 7:CIRCLE G,H,J,1,-1*I
6120 FOR II=1 TO 100:NEXT :NEXT :NEXT
6130 RETURN
6200 G(1)=Y(UU(K))*8-2:H(1)=X(UU(K))*16-8
6210 G(2)=G(1)-16:H(2)=H(1):IF G(2)<0 THEN G(2)=G(1)
6220 G(3)=G(1):H(3)=H(1)-16:IF H(3)<0 THEN H(3)=H(1)
6230 G(4)=G(1):H(4)=H(1)+16:IF H(4)>60 THEN H(4)=H(1)
6240 G(5)=G(1)+16:H(5)=H(1):IF G(5)>160 THEN G(5)=G(1)
6250 FOR I=-1 TO 0: FOR J=0 TO 7: FOR II=1 TO 5
6255 CIRCLE G(II),H(II),J,1,-1*I:NEXT
6260 FOR JJ=1 TO 20:NEXT :NEXT :NEXT
6270 RETURN
6300 GOTO 6900
6310 FOR III=1 TO 10:G=INT(RND(1)*120)+20:H=INT(RND(1)*24)+20:I=INT(RND(1)*10)+10
6315 FOR II=1 TO 0 STEP -1: FOR J=0 TO I:CIRCLE G,H,J,1,II
6320 NEXT :NEXT :GOSUB 9995:NEXT :MP=MP-MF(4)
6330 RETURN
6400 U=0:K=1:IF MP<MF(P) THEN BEEP:LOCATE 5,1:PRINT NDFL$;:T$=INKEY$:3600
6402 U=0:K=1:IF X(1)-2<1 THEN 6405
6404 IF WZ(X(1)-2,Y(1))<>0 THEN U=U+1:UU(U)=WZ(X(1)-2,Y(1))
6405 IF X(1)-1=0 THEN 6416
6406 IF Y(1)-2<0 THEN 6410
6408 IF WZ(X(1)-1,Y(1)-2)<>0 THEN U=U+1:UU(U)=WZ(X(1)-1,Y(1)-2)
6410 IF WZ(X(1)-1,Y(1))<>0 THEN U=U+1:UU(U)=WZ(X(1)-1,Y(1))
6412 IF Y(1)+2>19 THEN 6416
6414 IF WZ(X(1)-1,Y(1)+2)<>0 THEN U=U+1:UU(U)=WZ(X(1)-1,Y(1)+2)
6416 IF Y(1)-4<0 THEN 6420
6418 IF WZ(X(1),Y(1)-4)<>0 THEN U=U+1:UU(U)=WZ(X(1),Y(1)-4)
6420 IF Y(1)-2<0 THEN 6424
6422 IF WZ(X(1),Y(1)-2)<>0 THEN U=U+1:UU(U)=WZ(X(1),Y(1)-2)
6424 IF Y(1)+2>19 THEN 6432
6426 IF WZ(X(1),Y(1)+2)<>0 THEN U=U+1:UU(U)=WZ(X(1),Y(1)+2)
6428 IF Y(1)+4>19 THEN 6432
6430 IF WZ(X(1),Y(1)+4)<>0 THEN U=U+1:UU(U)=WZ(X(1),Y(1)+4)
6432 IF X(1)+1>4 THEN 6500
6434 IF Y(1)-2<0 THEN 6438
6436 IF WZ(X(1)+1,Y(1)-2)<>0 THEN U=U+1:UU(U)=WZ(X(1)+1,Y(1)-2)
6438 IF WZ(X(1)+1,Y(1))<>0 THEN U=U+1:UU(U)=WZ(X(1)+1,Y(1))
6440 IF Y(1)+2>19 THEN 6444
6442 IF WZ(X(1)+1,Y(1)+2)<>0 THEN U=U+1:UU(U)=WZ(X(1)+1,Y(1)+2)
6444 IF X(1)+2>4 THEN 6500
6446 IF WZ(X(1)+2,Y(1))<>0 THEN U=U+1:UU(U)=WZ(X(1)+2,Y(1))
6500 IF K>U THEN K=1:6506 ELSE IF U>0 THEN 6506
6502 BEEP:LOCATE 5,1:PRINT "目标不在范围内!";:T$=INKEY$: GOTO 3600
6506 GOSUB 9995:LOCATE 5,1:PRINT NB$(UU(K));KP(UU(K));"/";
6507 PRINT KPP(UU(K));:G=Y(UU(K))*8-8:H=X(UU(K))*16-16
6508 BOX G,H,G+15,H+15:IF P=2 THEN 6526
6510 IF X(UU(K))-1=0 THEN 6514
6512 BOX G,H-16,G+15,H-1
6514 IF X(UU(K))+1=5 THEN 6518
6516 BOX G,H+16,G+15,H+31
6518 IF Y(UU(K))-2<0 THEN 6522
6520 BOX G-16,H,G-1,H+15
6522 IF Y(UU(K))+2>19 THEN 6526
6524 BOX G+16,H,G+31,H+15
6526 T=ASC(INKEY$):IF (T>19 AND T<24) OR T=13 OR T=27 THEN 6528 ELSE BEEP:6526
6528 IF T=27 THEN U=0:3600
6530 IF T<>13 THEN K=K+1:6500
6534 IF T=13 AND P=2 THEN GOSUB 6100:GGLL=XG(2):MP=MP-MF(2): GOTO 3731
6535 IF T=13 AND P=3 THEN GOSUB 6200:GGLL=XG(3):M=0:N=UU(K):MP=MP-MF(3): GOTO 3731
6536 M=M+1:IF M>4 THEN 3620
6537 FOR I=1 TO 4: FOR J=1 TO 19 STEP 2:WZ(I,J)=0:NEXT :NEXT
6538 FOR I=2 TO 6:WZ(X(I),Y(I))=I
6539 NEXT :ON M GOTO 6540,6544,6548,6552
6540 IF X(N)>1 THEN IF WZ(X(N)-1,Y(N))>1 THEN UU(K)=WZ(X(N)-1,Y(N)):3731
6542 GOTO 6536
6544 IF X(N)<4 THEN IF WZ(X(N)+1,Y(N))>1 THEN UU(K)=WZ(X(N)+1,Y(N)):3731
6546 GOTO 6536
6548 IF Y(N)>1 THEN IF WZ(X(N),Y(N)-2)>1 THEN UU(K)=WZ(X(N),Y(N)-2):3731
6550 GOTO 6536
6552 IF Y(N)<19 THEN IF WZ(X(N),Y(N)+2)>1 THEN UU(K)=WZ(X(N),Y(N)+2):3731
6554 GOTO 3620
6900 IF MP<MF(4) THEN BEEP:LOCATE 5,1:PRINT NDFL$;:T$=INKEY$:3600
6910 GOSUB 6310:M=0
6915 M=M+1:IF KP(M)=0 THEN 6940
6920 IF M=6 AND R<>INT(R/5)*5 THEN 6940
6930 GGLL=XG(4):UU(K)=M: GOTO 3731
6940 IF M<7 THEN 6915 ELSE 3620
7000 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2920:GOSUB 2920:RETURN
7010 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2920:GOSUB 2900:RETURN
7020 IF WZ(X(1)+1,Y(1)+2)=0 THEN GOSUB 2920:E=0:RETURN
7030 GOSUB 2900:E=0:RETURN
7050 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2920:RETURN
7060 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2900:RETURN
7080 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)+2)=0 THEN GOSUB 2900:GOSUB 2900:E=0:RETURN
7090 IF Y(1)>1 THEN IF WZ(X(1)+1,Y(1)-2)=0 THEN GOSUB 2920:GOSUB 2920:E=0:RETURN
7095 E=0:RETURN
7100 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2920:GOSUB 2900:E=1:RETURN
7110 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2900:GOSUB 2900:E=1:RETURN
7120 IF WZ(X(1)+1,Y(1)+2)=0 THEN GOSUB 2900:E=0:RETURN
7130 GOSUB 2920:E=0:RETURN
7150 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2930:GOSUB 2930:RETURN
7160 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2930:GOSUB 2900:RETURN
7170 IF WZ(X(1)+1,Y(1)-2)=0 THEN GOSUB 2930:E=0:RETURN
7180 GOSUB 2900:E=0:RETURN
7190 E=0:RETURN
7200 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2930:RETURN
7210 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2900:RETURN
7230 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)-2)=0 THEN GOSUB 2900:GOSUB 2900:E=0:RETURN
7240 IF Y(1)<19 THEN IF WZ(X(1)+1,Y(1)+2)=0 THEN GOSUB 2930:GOSUB 2930:E=0:RETURN
7245 E=0:RETURN
7250 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2930:GOSUB 2900:E=1:RETURN
7260 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2900:GOSUB 2900:E=1:RETURN
7270 IF WZ(X(1)+2,Y(1)+2)=0 THEN GOSUB 2930:RETURN
7280 IF WZ(X(1)+1,Y(1)-2))=0 THEN GOSUB 2900:RETURN
7300 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2920:GOSUB 2920:RETURN
7310 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2910:GOSUB 2920:RETURN
7320 IF WZ(X(1)-1,Y(1)+2)=0 THEN GOSUB 2920:E=0:RETURN
7330 GOSUB 2910:E=0:RETURN
7350 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2920:RETURN
7360 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2910:RETURN
7380 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)+2)=0 THEN GOSUB 2910:GOSUB 2910:E=0:RETURN
7390 IF Y(1)>1 THEN IF WZ(X(1)-1,Y(1)-2)=0 THEN GOSUB 2920:GOSUB 2920:E=0:RETURN
7395 E=0:RETURN
7400 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2920:GOSUB 2910:E=1:RETURN
7410 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2910:GOSUB 2910:E=1:RETURN
7420 IF WZ(X(1)-2,Y(1))=0 THEN GOSUB 2920:RETURN
7430 IF WZ(X(1)-1,Y(1)+2)=0 THEN GOSUB 2910:RETURN
7450 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2930:GOSUB 2930:RETURN
7460 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2930:GOSUB 2910:RETURN
7470 IF WZ(X(1)-1,Y(1)-2)=0 THEN GOSUB 2930:E=0:RETURN
7480 IF WZ(X(1),Y(1)-4)=0 THEN GOSUB 2910:E=0:RETURN
7490 E=0:RETURN
7500 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2930:RETURN
7510 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2910:RETURN
7530 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)-2)=0 THEN GOSUB 2910:GOSUB 2910:E=0:RETURN
7540 IF Y(1)<19 THEN IF WZ(X(1)-1,Y(1)+2)=0 THEN GOSUB 2930:GOSUB 2930:E=0:RETURN
7545 E=0:RETURN
7550 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2930:GOSUB 2910:E=1:RETURN
7560 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2910:GOSUB 2910:E=1:RETURN
7570 IF WZ(X(1)-2,Y(1))=0 THEN GOSUB 2930:RETURN
7580 IF WZ(X(1)-1,Y(1-2))=0 THEN GOSUB 2910:RETURN
7600 IF WZ(X(S),Y(S)-4)=0 THEN GOSUB 2920:GOSUB 2920:RETURN
7610 IF WZ(X(S)-1,Y(S)-2)=0 THEN GOSUB 2920:GOSUB 2900:RETURN
7620 IF WZ(X(S),Y(S)-2)=0 THEN GOSUB 2920:RETURN
7630 GOSUB 2900:RETURN
7650 IF WZ(X(S)-1,Y(S)-2)=0 THEN GOSUB 2920:GOSUB 2900:RETURN
7660 IF Y(S)>3 THEN IF WZ(X(S),Y(S)-4)=0 THEN GOSUB 2920:GOSUB 2920:RETURN
7670 IF WZ(X(S)-2,Y(S))=0 THEN GOSUB 2900:GOSUB 2900:RETURN
7680 I=RND(1):IF I>0.5 THEN 7690
7685 GOSUB 2900:RETURN
7690 GOSUB 2920:RETURN
7700 IF WZ(X(S),Y(S)+4)=0 THEN GOSUB 2930:GOSUB 2930:RETURN
7710 IF WZ(X(S)-1,Y(S)+2)=0 THEN GOSUB 2930:GOSUB 2900:RETURN
7720 IF WZ(X(S),Y(S)+2)=0 THEN GOSUB 2930:RETURN
7730 GOSUB 2900:RETURN
7750 IF WZ(X(S)-1,Y(S)+2)=0 THEN GOSUB 2930:GOSUB 2900:RETURN
7760 IF Y(S)<17 THEN IF WZ(X(S),Y(S)+4)=0 THEN GOSUB 2930:GOSUB 2930:RETURN
7770 IF WZ(X(S)-2,Y(S))=0 THEN GOSUB 2900:GOSUB 2900:RETURN
7780 I=RND(1):IF I>0.5 THEN 7790
7785 GOSUB 2930:RETURN
7790 GOSUB 2900:RETURN
7800 IF WZ(X(S),Y(S)-4)=0 THEN GOSUB 2920:GOSUB 2920:RETURN
7810 IF WZ(X(S)+1,Y(S)-2)=0 THEN GOSUB 2920:GOSUB 2910:RETURN
7820 IF WZ(X(S),Y(S)-2)=0 THEN GOSUB 2920:RETURN
7830 IF WZ(X(S)+1,Y(S))=0 THEN GOSUB 2910:RETURN
7850 IF WZ(X(S)+1,Y(S)-2)=0 THEN GOSUB 2920:GOSUB 2910:RETURN
7860 IF Y(S)>3 THEN IF WZ(X(S),Y(S)-4)=0 THEN GOSUB 2920:GOSUB 2920:RETURN
7870 IF WZ(X(S)+2,Y(S))=0 THEN GOSUB 2910:GOSUB 2910:RETURN
7880 I=RND(1):IF I>0.5 THEN 7890
7885 GOSUB 2910:RETURN
7890 GOSUB 2920:RETURN
7900 IF WZ(X(S),Y(S)+4)=0 THEN GOSUB 2930:GOSUB 2930:RETURN
7910 IF WZ(X(S)+1,Y(S)+2)=0 THEN GOSUB 2930:GOSUB 2910:RETURN
7920 IF WZ(X(S),Y(S)+2)=0 THEN GOSUB 2930:RETURN
7930 IF WZ(X(S)+1,Y(S))=0 THEN GOSUB 2910:RETURN
7950 IF WZ(X(S)+1,Y(S)+2)=0 THEN GOSUB 2930:GOSUB 2910:RETURN
7960 IF Y(S)<17 THEN IF WZ(X(S),Y(S)+4)=0 THEN GOSUB 2930:GOSUB 2930:RETURN
7970 IF WZ(X(S)+2,Y(S))=0 THEN GOSUB 2910:GOSUB 2910:RETURN
7980 I=RND(1):IF I>0.5 THEN 7990
7985 GOSUB 2910:RETURN
7990 GOSUB 2930:RETURN
8000 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2900:E=1:RETURN
8010 IF Y(1)<19 THEN IF WZ(X(1)+1,Y(1)+2)=0 THEN GOSUB 2900:GOSUB 2930:RETURN
8020 IF Y(1)>1 THEN IF WZ(X(1)+1,Y(1)-2)=0 THEN GOSUB 2900:GOSUB 2920:RETURN
8030 IF Y(1)<19 THEN IF WZ(X(1)+2,Y(1)+2)=0 THEN GOSUB 2930:RETURN
8040 IF Y(1)>1 THEN IF WZ(X(1)+2,Y(1)-2)=0 THEN GOSUB 2920:RETURN
8045 E=0:RETURN
8050 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2900:GOSUB 2900:E=1:RETURN
8060 IF WZ(X(1)+2,Y(1))=0 THEN GOSUB 2900:RETURN
8070 IF Y(1)>1 THEN IF WZ(X(1)+2,Y(1)-2)=0 THEN GOSUB 2900:GOSUB 2920:RETURN
8080 IF Y(1)<19 THEN IF WZ(X(1)+2,Y(1)+2)=0 THEN GOSUB 2900:GOSUB 2930:RETURN
8090 E=0:RETURN
8100 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2920:E=1:RETURN
8110 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)+2)=0 THEN GOSUB 2920:GOSUB 2900:E=0:RETURN
8120 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)+2)=0 THEN GOSUB 2920:GOSUB 2910:E=0:RETURN
8130 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)+4)=0 THEN GOSUB 2900:E=0:RETURN
8140 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)+4)=0 THEN GOSUB 2910:E=0:RETURN
8145 E=0:RETURN
8150 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2920:GOSUB 2920:E=1:RETURN
8160 IF WZ(X(1),Y(1)+4)=0 THEN GOSUB 2920:E=0:RETURN
8170 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)+4)=0 THEN GOSUB 2900:GOSUB 2920:RETURN
8180 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)+4)=0 THEN GOSUB 2910:GOSUB 2920:RETURN
8190 E=0:RETURN
8200 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2930:E=1:RETURN
8210 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)-2)=0 THEN GOSUB 2930:GOSUB 2910:RETURN
8220 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)-2)=0 THEN GOSUB 2930:GOSUB 2900:RETURN
8230 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)-4)=0 THEN GOSUB 2910:E=0:RETURN
8240 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)-4)=0 THEN GOSUB 2900:E=0:RETURN
8245 E=0:RETURN
8250 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2930:GOSUB 2930:E=1:RETURN
8260 IF WZ(X(1),Y(1)-4)=0 THEN GOSUB 2930:RETURN
8270 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)-4)=0 THEN GOSUB 2900:GOSUB 2930:RETURN
8280 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)-4)=0 THEN GOSUB 2910:GOSUB 2930:RETURN
8290 E=0:RETURN
8300 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2910:E=1:RETURN
8310 IF Y(1)>1 THEN IF WZ(X(1)-1,Y(1)-2)=0 THEN GOSUB 2910:GOSUB 2920:RETURN
8320 IF Y(1)<19 THEN IF WZ(X(1)-1,Y(1)+2)=0 THEN GOSUB 2910:GOSUB 2930:RETURN
8330 IF Y(1)>1 THEN IF WZ(X(1)-2,Y(1)-2)=0 THEN GOSUB 2920:RETURN
8340 IF Y(1)<19 THEN IF WZ(X(1)-2,Y(1)+2)=0 THEN GOSUB 2930:RETURN
8345 E=0:RETURN
8350 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2910:GOSUB 2910:E=1:RETURN
8360 IF WZ(X(1)-2,Y(1))=0 THEN GOSUB 2910:RETURN
8370 IF Y(1)>1 THEN IF WZ(X(1)-2,Y(1)-2)=0 THEN GOSUB 2910:GOSUB 2920:RETURN
8380 IF Y(1)<19 THEN IF WZ(X(1)-2,Y(1)+2)=0 THEN GOSUB 2910:GOSUB 2930:RETURN
8390 E=0:RETURN
8400 IF X(1)-X(S)=0 THEN 8450
8410 I=Y(1)*8:J=X(1)*16-16: FOR III=-1 TO 0
8415 FOR II=0 TO 7:LINE I+II,J,I+II,J+15,III^2:LINE I-II,J,I-II,J+15,III^2
8420 FOR JJ=1 TO 100:NEXT :NEXT :NEXT : GOTO 2940
8450 I=Y(1)*8-8:J=X(1)*16-8: FOR III=-1 TO 0
8455 FOR II=0 TO 7:LINE I,J+II,I+15,J+II,III*III:LINE I,J-II,I+15,J-II,III*III
8470 FOR JJ=1 TO 100:NEXT :NEXT :NEXT : GOTO 2940
8500 IF WZ(X(S),Y(S)+4)=0 THEN GOSUB 2930:GOSUB 2930:RETURN
8510 IF WZ(X(S),Y(S)+2)=0 THEN GOSUB 2930:RETURN ELSE RETURN
8600 IF WZ(X(S),Y(S)-4)=0 THEN GOSUB 2920:GOSUB 2920:E=0:RETURN
8610 IF WZ(X(S),Y(S)-2)=0 THEN GOSUB 2920:RETURN ELSE RETURN
8800 IF E=1 THEN 8400 ELSE 2050
9000 CLS:PRINT "①存档一","②存档二","③存档三","④存档四","⑤存档五";
9011 T$=INKEY$:IF (T$="b")+(T$="n")+(T$="m")+(T$="g")+(T$="h") THEN 9012 ELSE BEEP:9011
9012 GOSUB 10:LOCATE T,9:PRINT "保存中…";
9013 CLOSE #1:OPEN "DJFMJsave"+STR$(T) FOR OUTPUTAS#1
9020 WRITE #1,A,B,X,Y,MO,DJ,HP,HPP,MP,MPP,JY,JYZ,GGL,Q,R,M(1),N(1),QT,W,V
9040 FOR I=2 TO 6:WRITE #1,KP(I),KPP(I):NEXT
9050 FOR I=1 TO 6:WRITE #1,YPS(I):NEXT
9060 FOR I=1 TO 5:WRITE #1,X(I),Y(I),WZ(X(I),Y(I)):NEXT :CLOSE #1:GOSUB 9175:RETURN
9110 CLS:PRINT "①存档一","②存档二","③存档三","④存档四","⑤存档五";
9111 T$=INKEY$:IF (T$="b")+(T$="n")+(T$="m")+(T$="g")+(T$="h") THEN 9112 ELSE BEEP:9111
9112 GOSUB 10:LOCATE T,9:PRINT "载入中…";
9113 OPEN "DJFMJsave"+STR$(T) FOR INPUT AS#1
9120 INPUT #1,A,B,X,Y,MO,DJ,HP,HPP,MP,MPP,JY,JYZ,GGL,Q,R,M(1),N(1),QT,W,V
9140 FOR I=2 TO 6:INPUT #1,KP(I),KPP(I):NEXT
9150 FOR I=1 TO 6:INPUT #1,YPS(I):NEXT
9160 FOR I=1 TO 5:INPUT #1,X(I),Y(I),WZ(X(I),Y(I)):NEXT
9170 CLOSE #1:GOSUB 9175: GOTO 9180
9175 OPEN "FMYXZMAP" FOR RANDOM AS #1 LEN=128:FIELD #1,128 AS MAP$:RETURN
9180 RR=0:IF B=1 THEN 505 ELSE CLS:GOTO 2050
9200 CLS:PRINT "本程序由薛顺健开发设计,本着要把游戏做得更好的原则,但我的时间和精";
9210 PRINT "力有限,还望各位用户见谅!";:T$=INKEY$: GOTO 9300
9300 GET #1,56:CLS:PRINT MAP$;:GOSUB 9994
9320 T$=INKEY$:GOSUB 10
9325 IF T<1 OR T>6 THEN 9320
9330 I=1:ON T GOTO 9350,9360,9390,9500,9200,9800
9340 BEEP: GOTO 9320
9350 RETURN
9360 P=1:CLS:PRINT "*****";NA$(1);"的状态";"*****";: GOTO 9370
9365 T=ASC(INKEY$):IF T=20 OR T=21 OR T=27 THEN 9366 ELSE BEEP:9365
9366 IF T=20 THEN P=P-1:IF P=0 THEN BEEP:P=1:9365
9367 IF T=21 THEN P=P+1:IF P=3 THEN BEEP:P=2:9365
9368 IF T=27 AND I=1 THEN 9300 ELSE IF T=27 AND I=0 THEN 9900
9369 ON P GOTO 9370,9380
9370 LOCATE 2,1:PRINT SPC (69);
9371 LOCATE 2,1:PRINT "等级:";DJ;"级","经验:";JY;"/";JYZ,"体力:";HP;"/";HPP;
9375 GOTO 9365
9380 LOCATE 2,1:PRINT SPC (69);
9381 LOCATE 2,1:PRINT "法力:";MP;"/";MPP,"攻击力:";GGL,"金钱:";MO;
9385 GOTO 9365
9390 CLS:PRINT "①存档","②读档"
9391 T$=INKEY$:IF T$="b" OR T$="n" OR ASC(T$)=27 THEN 9392 ELSE BEEP:9391
9392 GOSUB 10:IF T=1 THEN GOSUB 9000: GOTO 9300
9393 IF T=2 THEN CLOSE #1: GOTO 9110
9394 IF ASC(T$)=27 THEN 9300
9400 CLS:PRINT "①";YP$(1);"×";:LOCATE 1,11:PRINT "④";YP$(4);"×";
9401 LOCATE 2,1:PRINT "②";YP$(2);"×";:LOCATE 2,11:PRINT "⑤";YP$(5);"×";
9402 LOCATE 3,1:PRINT "③";YP$(3);"×";:LOCATE 3,11:PRINT "⑥";YP$(6);"×";
9403 LOCATE 4,15:PRINT RW$(1);
9410 LOCATE 1,9:PRINT YPS(1);:LOCATE 1,19:PRINT YPS(4);
9411 LOCATE 2,9:PRINT YPS(2);:LOCATE 2,19:PRINT YPS(5);
9412 LOCATE 3,9:PRINT YPS(3);:LOCATE 3,19:PRINT YPS(6);
9415 T$=INKEY$:GOSUB 10
9416 IF T$=CHR$(27) THEN S=1:9490
9417 GXX(T)=GX(T):GXX(3)=HPP-HP:GXX(6)=MPP-MP
9418 IF T<4 AND HPP<HP+GX(T) THEN GXX(T)=HPP-HP
9419 IF T>3 AND MPP<MP+GX(T) THEN GXX(T)=MPP-MP
9420 IF YPS(T)=0 THEN BEEP:9415
9421 IF T>3 AND MP=MPP THEN LOCATE 5,1:PRINT AAA$(5);:BEEP:9415
9422 IF T<4 AND HP=HPP THEN LOCATE 5,1:PRINT AAA$(4);:BEEP:9415
9430 IF T>3 THEN PR$="法力+":MP=MP+GXX(T) ELSE PR$="体力+":HP=HP+GXX(T)
9460 YPS(T)=YPS(T)-1: FOR II=1 TO 0 STEP -1: FOR I=0 TO 9:CIRCLE 120,56,I,1,II
9470 FOR J=1 TO 100:NEXT :NEXT :NEXT :LOCATE 4,15:PRINT RW$(1);
9480 LOCATE 5,1:PRINT PR$;GXX(T);:T$=INKEY$:T$="Y"
9490 GOSUB 9994:RETURN
9500 GOSUB 9400: GOTO 9300
9800 CLS:PRINT " 程序设计:薛顺健 E-mail:wqstar028@mai l.china.com"
9810 PRINT " QQ:12068232 有空请和我联系!";
9820 T$=INKEY$:BOX 0,0,160,80,1,2:FOR I=1 TO 2000:NEXT:FOR I=0 TO 80
9821 BOX I,I/2,160-I,80-I/2,0,0:FOR J=1 TO 50 :NEXT:NEXT
9825 CLS:LOCATE 2,7:PRINT "谢谢使用!":LOCATE 3,9:PRINT "再见!"
9830 FOR I=1 TO 4000:NEXT:POKE 199,155
9900 GET #1,55:CLS:PRINT MAP$;:LOCATE 5,16:PRINT " ";:I=0
9910 T$=INKEY$:GOSUB 10:ON T GOTO 9920,9360,9930,9800:BEEP: GOTO 9910
9920 GOSUB 9994:RETURN
9930 GOSUB 9000: GOTO 9900
9994 LOCATE 5,1:PRINT " ";:RETURN
9995 GET #1,R+1
9996 LOCATE 1,1:PRINT MAP$;:LOCATE X(1),Y(1):PRINT RW$(1);: FOR J=2 TO 5:IF KP(J)=0 THEN 9998
9997 LOCATE X(J),Y(J):PRINT NPC$(J);
9998 NEXT :IF R=INT(R/5)*5 THEN WZ(3,19)=6
9999 RETURN
0 :
1 GRAPH
2 DIM WZ(5,21),DM$(4,19):X(6)=3:Y(6)=19
6 MO=100 :GOSUB 4101: GOTO 30
10 IF T$="b" THEN T=1:19
11 IF T$="n" THEN T=2:19
12 IF T$="m" THEN T=3:19
13 IF T$="g" THEN T=4:19
14 IF T$="h" THEN T=5:19
15 IF T$="j" THEN T=6:19
16 T=10
19 RETURN
30 LOCATE 1,1:PRINT " 《伏魔英雄传》"," 超经典RPG互动游戏"," V1.2增强版"
40 LOCATE 4,4:PRINT " 正在读取数据";
50 BOX 40,70,120,73,0,2
54 OPEN "FMYXZDATA" FOR INPUT AS #1
55 INPUT #1,NDFL$: FOR A=1 TO 10:INPUT #1,AE$(A):B=0.808*A+41:LINE B,70,B,73:NEXT
56 FOR A=1 TO 6:INPUT #1,YPM$(A):C=0.808*A+B:LINE C,70,C,73:NEXT :INPUT #1,YDTX$
58 FOR A=1 TO 2:INPUT #1,MAP$(A):B=0.808*A+C:LINE B,70,B,73:NEXT
60 FOR A=1 TO 4:INPUT #1,CD$(A):C=0.808*A+B:LINE C,70,C,73:NEXT
70 FOR A=1 TO 9:INPUT #1,HG$(A):B=0.808*A+C:LINE B,70,B,73:NEXT
80 FOR A=1 TO 7:INPUT #1,ZP$(A):C=0.808*A+B:LINE C,70,C,73:NEXT
90 FOR A=1 TO 9:INPUT #1,DR$(A):B=0.808*A+C:LINE B,70,B,73:NEXT
100 FOR A=1 TO 5:INPUT #1,MZ$(A):C=0.808*A+B:LINE C,70,C,73:NEXT
110 FOR A=1 TO 5:INPUT #1,GZ$(A):B=0.808*A+C:LINE B,70,B,73:NEXT
120 FOR A=1 TO 6:INPUT #1,WG$(A):C=0.808*A+B:LINE C,70,C,73:NEXT
130 FOR A=1 TO 6:INPUT #1,YP$(A):B=0.808*A+C:LINE B,70,B,73:NEXT
140 FOR A=1 TO 4:INPUT #1,MF$(A):C=0.808*A+B:LINE C,70,C,73:NEXT
150 FOR A=-1 TO 1 STEP 2: FOR AA=1 TO 9 STEP 2
151 INPUT #1,DM$((2.5+A)+A*0.5,AA*2+A)
152 B=0.808*A+C:LINE B,70,B,73:NEXT :NEXT
160 FOR A=1 TO 5:INPUT #1,AAA$(A):C=0.808*A+B:LINE C,70,C,73:NEXT
165 FOR A=1 TO 10:INPUT #1,RW$(A):INPUT #1,NA$(A):B=0.808*A+C:LINE B,70,B,73:NEXT
185 FOR A=1 TO 6:INPUT #1,YP(A):C=0.808*A+B:LINE C,70,C,73:INPUT #1,GX(A):NEXT
186 FOR A=1 TO 4:INPUT #1,MF(A):INPUT #1,XG(A):B=0.808*A+C:LINE B,70,B,73:NEXT
189 INPUT #1,AA
190 INPUT #1,BB
191 FOR A=1 TO 4:INPUT #1,BE$(A):NEXT
200 CLOSE #1
210 CLS:PRINT AAA$(1);
220 T$=INKEY$:A=0:GOSUB 10
225 IF T=1 THEN GOSUB 9175
230 ON T GOTO 300,9110,9800:BEEP: GOTO 220
300 CLS:PRINT MAP$(1);:POKE 803,AA:PRINT ;
305 LOCATE 1,9:PRINT RW$(2);: FOR I=1 TO 3000:NEXT
310 FOR I=2 TO 4:LOCATE I-1,9:PRINT "※";:LOCATE I,9:PRINT RW$(2);
315 FOR J=1 TO 2000:NEXT :NEXT : FOR I=1 TO 1000:NEXT
320 CLS:PRINT CD$(1);:T$=INKEY$
325 CLS:PRINT MAP$(1);:POKE 803,AA:PRINT ;:LOCATE 4,9:PRINT RW$(2);
330 FOR I=0 TO 80:LINE 0,I,160,I,2: FOR J=1 TO 100:NEXT :NEXT
335 CLS:PRINT MAP$(1);:POKE 803,AA:PRINT ;:BOX 0,0,160,80,1,2
340 FOR I=0 TO 80:LINE 0,I,160,I,2: FOR J=1 TO 100:NEXT :NEXT
345 FOR I=1 TO 1000:NEXT
350 FOR I=2 TO 4:CLS:PRINT CD$(I);:T$=INKEY$:NEXT
355 FOR I=1 TO 1000:NEXT
360 CLS:PRINT MAP$(2);:POKE 803,BB:PRINT ;: FOR I=1 TO 1000:NEXT
365 LOCATE 5,11:PRINT RW$(3);: FOR I=1 TO 2000:NEXT
370 LOCATE 5,11:PRINT " ";:LOCATE 4,11:PRINT RW$(3);
380 FOR J=1 TO 2000:NEXT
381 LOCATE 4,11:PRINT " ";:LOCATE 3,11:PRINT RW$(3);: FOR I=1 TO 2000:NEXT
385 FOR I=1 TO 3:CLS:PRINT HG$(I);:T$=INKEY$:NEXT
390 CLS:PRINT MAP$(2);:POKE 803,BB:PRINT ;
395 LOCATE 3,11:PRINT RW$(3);: FOR I=1 TO 2000:NEXT
400 LOCATE 4,11:PRINT RW$(3);:LOCATE 3,11:PRINT " ";: FOR I=1 TO 2000:NEXT
405 LOCATE 4,13:PRINT RW$(3);:LOCATE 4,11:PRINT " ";: FOR I=1 TO 2000:NEXT
410 LOCATE 5,11:PRINT RW$(1);: FOR I=1 TO 2000:NEXT
415 LOCATE 4,11:PRINT RW$(1);:LOCATE 5,11:PRINT " ";
420 FOR J=1 TO 2000:NEXT
421 LOCATE 3,11:PRINT RW$(1);:LOCATE 4,11:PRINT " ";
422 FOR J=1 TO 2000:NEXT
425 FOR I=4 TO 9:CLS:PRINT HG$(I);:T$=INKEY$:NEXT
500 X=3:Y=11:Q=Q+1:B=1
505 GET #1,1
506 CLS:PRINT MAP$;:LOCATE X,Y:PRINT RW$(1);
507 LOCATE 5,1:PRINT DM$(X,Y);" ";
510 T=ASC(INKEY$):IF (T>19 AND T<24) OR (T=13 OR T=113) THEN 515 ELSE BEEP:510
515 IF T=20 THEN X=X-1:IF X<1 THEN BEEP:X=1:505
520 IF T=21 THEN X=X+1:IF X>4 THEN BEEP:X=4:505
525 IF T=22 THEN Y=Y+2:IF Y>19 THEN BEEP:Y=19:505
530 IF T=23 THEN Y=Y-2:IF Y<1 THEN BEEP:Y=1:505
535 IF T=113 THEN GOSUB 9300: GOTO 505
536 IF T>13 THEN 505
540 IF X=4 THEN 570
541 IF X=2 OR X=3 THEN BEEP:505
545 IF Y=1 THEN 600
550 IF Y=5 THEN 700
555 IF Y=9 THEN 800
560 IF Y=13 THEN 4500
561 IF Y=17 THEN 590
565 BEEP: GOTO 505
570 IF ((Y=3)+(Y=7)+(Y=15)+(Y=19)) THEN 590
575 IF Y=11 THEN 576 ELSE 580
576 IF A=0 THEN 2000 ELSE IF A=1 THEN 5000
580 BEEP: GOTO 505
590 CLS:PRINT "请问你找谁?";:T$=INKEY$: GOTO 505
600 G=1
601 C=17:D=16:PP=1
602 CLS:PRINT "********";DM$(X,Y);:LOCATE 1,13:PRINT "********";YDTX$;
606 LOCATE 5,3:PRINT "× × ";
611 LOCATE 5,1:PRINT YPM$(PP);"×";YPS(PP);
612 LOCATE 5,13:PRINT MO;:BOX C,D,C+48,D+15,1,2:E=C:F=D
620 T=ASC(INKEY$):IF (T<24 AND T>19) OR T=13 OR T=27 THEN 625 ELSE BEEP:620
625 IF T=20 THEN D=D-16:PP=PP-1:IF D<16 THEN D=48:PP=PP+3
630 IF T=21 THEN D=D+16:PP=PP+1:IF D>48 THEN D=16:PP=PP-3
635 IF T=23 THEN C=C-80:PP=PP-3:IF C<17 THEN C=97:PP=PP+6
640 IF T=22 THEN C=C+80:PP=PP+3:IF C>97 THEN C=17:PP=PP-6
645 IF T=27 THEN 505
647 IF T>13 THEN 678
650 IF G=2 THEN 4550
655 IF MO<YP(PP) THEN BEEP:LOCATE 5,1:PRINT AAA$(3);:T$=INKEY$:606
665 MO=MO-YP(PP):YPS(PP)=YPS(PP)+1
675 IF YPS(1)+YPS(2)+YPS(3)+YPS(4)+YPS(5)+YPS(6)>50 THEN YPS(PP)=YPS(PP)-1:MO=MO+YP(PP):680
678 BOX E,F,E+48,F+15,1,2: GOTO 606
680 LOCATE 5,1:PRINT "携带的物品太多了!";:T$=INKEY$: GOTO 606
700 CLS:PRINT "********客栈********";AAA$(2);
710 T$=INKEY$
720 IF T$="n" THEN 505 ELSE IF T$<>"y" THEN BEEP:710
730 IF MO<200 THEN CLS:PRINT "对不起!你没那么多钱啊!我们这不赊账!再见!":731 ELSE 735
731 T$=INKEY$: GOTO 505
735 FOR II=-1 TO 0: FOR I=0 TO 80: FOR J=1 TO 100:NEXT :LINE 0,I,160,I,(-2)*II:NEXT :NEXT
740 MO=MO-200:MP=MPP:HP=HPP:CLS:PRINT "欢迎下次再来!":T$=INKEY$: GOTO 505
800 IF Q>5 THEN QT=QT+1:IF QT>3 THEN QT=3
801 IF QT=3 THEN CLS:PRINT ZP$(7):T$=INKEY$:505
805 IF Q=5 AND QT=2 THEN CLS:PRINT ZP$(6);:T$=INKEY$:QT=3:505
820 CLS:PRINT ZP$(Q);:T$=INKEY$: GOTO 505
1100 G=G+7:H=H+7
1120 FOR J=1 TO 0 STEP -1: FOR JJ=0 TO 7:BOX G-JJ,H-JJ,G+JJ,H+JJ,1,J
1130 FOR JJJ=1 TO 150:NEXT :NEXT :NEXT
1135 RETURN
1200 BOX 144,32,159,47:LOCATE 5,1:PRINT NB$(6);KP(6);"/";KPP(6);: FOR I=1 TO 2500
1205 NEXT :IF Q=10 THEN 1206 ELSE 1210
1206 I=RND(1):IF I>0.4 THEN 1240
1207 I=ABS(X(1)-X(6)):J=ABS(Y(1)-Y(6)):IF I=0 AND J=2 THEN 1245
1208 IF I=1 AND J=0 THEN 1245 ELSE 2019
1210 IF Y(1)=15 AND X(1)=3 THEN 1240
1211 IF Y(1)=17 THEN 1220
1212 IF Y(1)=19 THEN 1230
1213 GOTO 2019
1220 IF X(1)=2 OR X(1)=4 THEN 1240
1221 IF X(1)=3 THEN 1245
1222 GOTO 2019
1230 IF X(1)<>1 THEN 1245
1235 IF X(1)>14 THEN 1240
1240 ON Q GOTO 1500,1600,1500,1600,1500,1600,1500,1600,1500,1700
1241 GG=Q*86+INT(RND(1)*(10-Q)*8): GOTO 2940
1245 GG=Q*69+INT(RND(1)*(10-Q)*3): GOTO 8400
1500 II=0:H=X(1)*16-8:G=Y(1)*8-3
1510 FOR I=20 TO 160 STEP 2:II=II+0.2:ELLIPSE I,31,II,II*2
1520 FOR J=1 TO 50:NEXT :NEXT
1524 FOR I=-1 TO 0: FOR J=0 TO 7:CIRCLE G+4,H,J,1,-1*I: FOR II=1 TO 50:NEXT :NEXT :NEXT
1530 GOSUB 9995: GOTO 1241
1600 FOR II=20 TO 120:I=0.23*II:J=0.08*II
1610 DRAW II,35-I:DRAW II,33-J:DRAW II,29+J:DRAW II,27+I
1620 FOR JJ=1 TO 5:NEXT :NEXT
1630 FOR II=1 TO 0 STEP -1: FOR I=0 TO 7
1640 CIRCLE 120,8,I,1,II:CIRCLE 120,24,I,1,II:CIRCLE 120,40,I,1,II:CIRCLE 120,56,I,1,II
1650 CIRCLE 136,8,I,1,II:CIRCLE 136,24,I,1,II:CIRCLE 136,40,I,1,II:CIRCLE 136,56,I,1,II
1660 CIRCLE 152,8,I,1,II:CIRCLE 152,24,I,1,II:CIRCLE 152,40,I,1,II:CIRCLE 152,56,I,1,II
1680 NEXT :NEXT :GOSUB 9995: GOTO 1241
1700 FOR I=144 TO 80 STEP -1:DRAW I,I*0.625-50:FOR II=1 TO 50 :NEXT:NEXT
1702 FOR II=0 TO 60:LINE 76,II,84,II:FOR I=1 TO 50:NEXT:NEXT
1705 FOR II=80 TO 160:LINE II,52,II,60:LINE 160-II,52,160-II,60:NEXT
1710 FOR II=56 TO 6 STEP -16:FOR J=1 TO 0 STEP -1:FOR JJ=0 TO 7:FOR I= 8 TO 160 STEP 16
1715 CIRCLE I,II,JJ,1,J:NEXT:NEXT:NEXT:GOSUB 9995:NEXT
1720 GOSUB 9995:GOTO 1241
1999 IF Q=10 THEN KP(6)=40000:KPP(6)=KP(6):2001 ELSE 2001
2000 X(1)=1:Y(1)=1:R=R+1:RR=0:NPC$(1)=RW$(1):KP(6)=Q*2678:KPP(6)=KP(6): GOTO 1999
2001 FOR I=2 TO 5:KP(I)=Q*50+R*10:J=INT(RND(1)*7)+4:NPC$(I)=RW$(J):NB$(I)=NA$(J):X(I)=I-1
2002 KPP(I)=KP(I):Y(I)=INT(RND(1)*10)*2+1:IF Y(I)=Y(1) AND X(I)=X(1) THEN 2002
2003 IF R=INT(R/5)*5 AND Y(I)=Y(6) AND X(I)=X(6) THEN 2002
2004 NEXT :GJL=Q*14+R*4:VW=4:WV=4:S=0
2005 GET #1,R+1:B=0:IF R=20 THEN A=1
2009 IF R<>INT(R/5)*5 THEN 2019
2010 NB$(6)=AE$(Q):IF R<50 THEN 2015
2011 IF RR=1 THEN 2019 ELSE FOR I=1 TO 5:CLS:PRINT MZ$(I);:T$=INKEY$:NEXT :RR=0: GOTO 2019
2015 IF RR=0 THEN CLS:PRINT DR$(Q):T$=INKEY$:RR=1
2019 GOSUB 9995:IF VW=0 THEN RR=1:2001
2020 IF KP(6)>0 THEN 2025 ELSE CLS:PRINT AE$(Q);"被击败。"
2021 IF Q<5 THEN PRINT "得到";AE$(Q):LOCATE 2,9:PRINT "灵珠";BE$(Q);: GOTO 2023
2022 IF R=50 THEN T$=INKEY$: GOTO 5100
2023 T$=INKEY$: GOTO 500
2025 FOR I=1 TO 4: FOR J=1 TO 19 STEP 2:WZ(I,J)=0:NEXT :NEXT
2028 FOR I=2 TO 5:IF KP(I)=0 THEN 2029 ELSE WZ(X(I),Y(I))=I
2029 NEXT :IF R=INT(R/5)*5 THEN WZ(3,19)=6
2041 S=S+1:IF S=6 AND R=INT(R/5)*5 THEN 1200
2042 IF S=1 THEN 3000 ELSE IF S>5 THEN S=0:2041 ELSE IF KP(S)=0 THEN 2041
2043 GG=GJL: GOTO 2051
2050 GOTO 2019
2051 GOSUB 9994
2052 LOCATE 5,1:PRINT NB$(S);KP(S);"/";KPP(S);" ";:C=Y(S)*8-8:D=X(S)*16-16
2053 BOX C,D,C+15,D+15:IF X(S)>X(1) AND Y(S)>Y(1) THEN 2100
2055 IF X(S)>X(1) AND Y(S)=Y(1) THEN 2200
2060 IF X(S)>X(1) AND Y(S)<Y(1) THEN 2300
2065 IF X(S)=X(1) AND Y(S)>Y(1) THEN 2400
2070 IF X(S)=X(1) AND Y(S)<Y(1) THEN 2500
2075 IF X(S)<X(1) AND Y(S)>Y(1) THEN 2600
2080 IF X(S)<X(1) AND Y(S)=Y(1) THEN 2700
2085 IF X(S)<X(1) AND Y(S)<Y(1) THEN 2800
2100 E=ABS(X(1)-X(S)):F=ABS(Y(1)-Y(S))/2
2110 IF E+F>3 THEN 2150
2120 IF E=1 AND F=2 THEN GOSUB 7000: GOTO 8800
2130 IF E=1 AND F=1 THEN GOSUB 7050: GOTO 8800
2140 IF E=2 AND F=1 THEN GOSUB 7100: GOTO 8800
2150 IF E=1 THEN GOSUB 7600: GOTO 2050
2160 IF E>1 THEN GOSUB 7650: GOTO 2050
2200 E=ABS(X(1)-X(S))
2220 IF E=1 THEN 8800
2230 IF E=2 THEN GOSUB 8000: GOTO 8800
2240 IF E=3 THEN GOSUB 8050: GOTO 8800
2300 E=ABS(X(1)-X(S)):F=ABS(Y(1)-Y(S))/2
2310 IF E+F>3 THEN 2350
2320 IF E=1 AND F=2 THEN GOSUB 7150: GOTO 8800
2330 IF E=1 AND F=1 THEN GOSUB 7200: GOTO 8800
2340 IF E=2 AND F=1 THEN GOSUB 7250: GOTO 8800
2350 IF E=1 THEN GOSUB 7700: GOTO 2050
2360 IF E>1 THEN GOSUB 7750: GOTO 2050
2400 F=ABS(Y(1)-Y(S))/2:E=0
2420 IF F=1 THEN E=1:8800
2430 IF F=2 THEN GOSUB 8100: GOTO 8800
2440 IF F=3 THEN GOSUB 8150: GOTO 8800
2450 GOSUB 8600: GOTO 2050
2500 F=ABS(Y(1)-Y(S))/2:E=0
2520 IF F=1 THEN E=1:8800
2530 IF F=2 THEN GOSUB 8200: GOTO 8800
2540 IF F=3 THEN GOSUB 8250: GOTO 8800
2550 GOSUB 8500: GOTO 2050
2600 E=ABS(X(1)-X(S)):F=ABS(Y(1)-Y(S))/2
2610 IF E+F>3 THEN 2650
2620 IF E=1 AND F=2 THEN GOSUB 7300: GOTO 8800
2630 IF E=1 AND F=1 THEN GOSUB 7350: GOTO 8800
2640 IF E=2 AND F=1 THEN GOSUB 7400: GOTO 8800
2650 IF E=1 THEN GOSUB 7800: GOTO 2050
2660 IF E>1 THEN GOSUB 7850: GOTO 2050
2700 E=ABS(X(1)-X(S)):F=ABS(Y(1)-Y(S))/2
2720 IF E=1 THEN 8800
2730 IF E=2 THEN GOSUB 8300: GOTO 8800
2740 IF E=3 THEN GOSUB 8350: GOTO 8800
2800 E=ABS(X(1)-X(S)):F=ABS(Y(1)-Y(S))/2
2810 IF E+F>3 THEN 2850
2820 IF E=1 AND F=2 THEN GOSUB 7450: GOTO 8800
2830 IF E=1 AND F=1 THEN GOSUB 7500: GOTO 8800
2840 IF E=2 AND F=1 THEN GOSUB 7550: GOTO 8800
2850 IF E=1 THEN GOSUB 7900: GOTO 2050
2860 IF E>1 THEN GOSUB 7950: GOTO 2050
2900 X(S)=X(S)-1:GOSUB 9995: FOR JJ=1 TO 1000:NEXT :RETURN
2910 X(S)=X(S)+1:GOSUB 9995: FOR JJ=1 TO 1000:NEXT :RETURN
2920 Y(S)=Y(S)-2:GOSUB 9995: FOR JJ=1 TO 1000:NEXT :RETURN
2930 Y(S)=Y(S)+2:GOSUB 9995: FOR JJ=1 TO 1000:NEXT :RETURN
2940 GOSUB 9995:HPPP=GG+INT(RND(1)*DJ/2):HP=HP-HPPP:IF HP>0 THEN 2950 ELSE 2960
2950 GOSUB 9994:LOCATE 5,1:PRINT "你的体力下降了";HPPP;: FOR I=1 TO 1500:NEXT : GOTO 2025
2960 CLS:LOCATE 2,5:PRINT "你的体力不支,"," 昏了过去……"
2970 FOR I=0 TO 80:LINE 0,I,160,I,2: FOR J=0 TO 100:NEXT :NEXT
2980 T$=INKEY$:CLOSE #1:POKE 199,155
3000 W=0:V=0
3005 GOSUB 9994
3006 LOCATE 5,1:PRINT NA$(1);"HP:";HP;"/";HPP;
3010 T=ASC(INKEY$):IF (T>19 AND T<24) OR (T=13 OR T=113) THEN 3020 ELSE BEEP:3010
3020 IF T=13 THEN T=24
3025 IF T=113 THEN T=25
3030 ON T-19 GOTO 3100,3200,3400,3300,3600,3040
3040 GOSUB 9900: GOSUB 9995:GOTO 3006
3100 X(S)=X(S)-1:W=W-1:IF X(S)=0 THEN BEEP:X(S)=1:W=W+1
3102 IF ABS(W)+ABS(V)>3 OR WZ(X(S),Y(S))>0 THEN X(S)=X(S)+1:W=W+1:BEEP:3010
3110 GOSUB 9995: GOTO 3010
3200 X(S)=X(S)+1:W=W+1:IF X(S)=5 THEN BEEP:X(S)=4:W=W-1
3210 IF ABS(W)+ABS(V)>3 OR WZ(X(S),Y(S))>0 THEN X(S)=X(S)-1:W=W-1:BEEP:3010
3220 IF X(S)=4 AND Y(S)=19 AND R<>INT(R/5)*5 THEN RR=0:2000
3226 GOSUB 9995: GOTO 3010
3300 Y(S)=Y(S)-2:V=V-1:IF Y(S)<1 THEN BEEP:Y(S)=1:V=V+1
3310 IF ABS(W)+ABS(V)>3 OR WZ(X(S),Y(S))>0 THEN Y(S)=Y(S)+2:V=V+1:BEEP:3010
3326 GOSUB 9995: GOTO 3010
3400 Y(S)=Y(S)+2:V=V+1:IF Y(S)>19 THEN BEEP:Y(S)=19:V=V-1
3410 IF ABS(W)+ABS(V)>3 OR WZ(X(S),Y(S))>0 THEN Y(S)=Y(S)-2:V=V-1:BEEP:3010
3425 IF X(S)=4 AND Y(S)=19 AND R<>INT(R/5)*5 THEN RR=0:2000
3426 GOSUB 9995: GOTO 3010
3500 GOSUB 9400: GOTO 3005
3600 GOSUB 9994:LOCATE 5,1:PRINT "①攻 ②法 ③物 ④防";
3610 T$=INKEY$:IF T$=CHR$(27) THEN 3005
3611 GOSUB 10:ON T GOTO 3670,3900,3660,3620:BEEP: GOTO 3610
3620 U=0: GOTO 2019
3660 GOSUB 9400:GOSUB 9995:IF T$="Y" THEN 2019 ELSE 3600
3670 PP=1=5
3700 IF X(1)-1=0 THEN 3702
3701 IF WZ(X(1)-1,Y(1))<>0 THEN U=U+1:UU(U)=WZ(X(1)-1,Y(1))
3702 IF X(1)+1=5 THEN 3704
3703 IF WZ(X(1)+1,Y(1))<>0 THEN U=U+1:UU(U)=WZ(X(1)+1,Y(1))
3704 IF Y(1)-2<0 THEN 3706
3705 IF WZ(X(1),Y(1)-2)<>0 THEN U=U+1:UU(U)=WZ(X(1),Y(1)-2)
3706 IF Y(1)+2=21 THEN 3708
3707 IF WZ(X(1),Y(1)+2)<>0 THEN U=U+1:UU(U)=WZ(X(1),Y(1)+2)
3708 K=1
3709 IF PP=2 AND MP<MF(1) THEN BEEP:LOCATE 5,1:PRINT NDFL$;:T$=INKEY$: GOTO 3600
3712 IF U>0 THEN 3714
3713 BEEP:LOCATE 5,1:PRINT "目标不在范围内! ";:T$=INKEY$: GOTO 3600
3714 GOSUB 9994:LOCATE 5,1:PRINT NB$(UU(K));
3715 PRINT KP(UU(K));"/";KPP(UU(K));:G=Y(UU(K))*8-8
3716 H=X(UU(K))*16-16:BOX G,H,G+15,H+15
3717 T=ASC(INKEY$):IF (T>19 AND T<24) OR (T=27 OR T=13) THEN 3719 ELSE BEEP:3717
3719 IF T=27 THEN U=0:3600
3720 IF U=0 THEN 3712
3725 IF T<>13 THEN 3735
3726 IF T=13 THEN ON PP GOTO 3730,6001
3730 IF T=13 THEN GOSUB 1100:GGLL=GGL
3731 KP=KP(UU(K)):KPPP=GGLL+INT(RND(1)*DJ)
3732 KP(UU(K))=KP(UU(K))-KPPP:IF KP(UU(K))>0 THEN 3733 ELSE 3790
3733 GOSUB 9995:GOSUB 9994:LOCATE 5,1:PRINT NPC$(UU(K));"体力下降了";KPPP;:T$=INKEY$: GOTO 3820
3735 K=K+1:BOX G,H,G+15,H+15,0,2:IF K>U THEN K=1
3740 ON P GOTO 3714,3714,6536,6940,3714
3790 WV=VW
3791 KP(UU(K))=0:JP=KPP(UU(K))+INT(RND(1)*DJ):JY=JY+JP:WZ(X(UU(K)),Y(UU(K)))=0:VW=VW-1
3792 I=INT(RND(1)*200):IF I>49 THEN MO=MO+INT(KPP(UU(K))/7)+INT(RND(1)*(DJ/2)):PC$="金币"
3795 IF I=49 THEN YPS(3)=YPS(3)+1:PC$=YP$(3)
3797 IF I=48 THEN YPS(6)=YPS(6)+1:PC$=YP$(6)
3801 IF I<48 AND I>26 THEN YPS(4)=YPS(4)+1:PC$=YP$(4)
3802 IF I<27 AND I>5 THEN YPS(1)=YPS(1)+1:PC$=YP$(1)
3803 IF I<6 AND I>2 THEN YPS(2)=YPS(2)+1:PC$=YP$(2)
3805 IF I<3 THEN YP(5)=YP(5)+1:PC$=YP$(5)
3806 IF UU(K)<6 THEN 3808 ELSE LOCATE 5,1:PRINT NB$(6);:LOCATE 5,9:PRINT "被打败了!";
3807 T$=INKEY$:LOCATE 5,1: GOTO 3809
3808 GOSUB 9995:LOCATE 5,1:PRINT NB$(UU(K));"被打败了!";:T$=INKEY$:LOCATE 5,1
3809 PRINT "得到";PC$;" ";:T$=INKEY$:LOCATE 5,1:PRINT "获得经验值";JP;
3810 T$=INKEY$:IF JY>=JYZ THEN GOSUB 4100
3820 IF P=3 THEN 6536 ELSE IF P=4 THEN 6940 ELSE 3620
3900 P=1:GOSUB 9994
3910 LOCATE 5,1:PRINT MF$(P);" ";
3920 T=ASC(INKEY$):IF T=20 OR T=21 OR T=13 OR T=27 THEN 3921 ELSE 3920
3921 IF T=21 THEN P=P+1:IF P>4 THEN BEEP:P=4:3920
3922 IF T=20 THEN P=P-1:IF P<1 THEN BEEP:P=1:3920
3923 IF T=27 THEN GOSUB 9995: GOTO 3600
3924 IF T<>13 THEN 3910
3925 ON P GOTO 6000,6400,6400,6900
4100 I=HPP:J=MPP:G=GGL:GOSUB 4101:GOTO 4110
4101 DJ=DJ+1:JYZ=DJ*300-200:HPP=DJ*38+50-DJ*4:MPP=DJ*19+(40-DJ*6):GGL=DJ*21+(40-DJ*9)
4105 HP=HPP:MP=MPP:RETURN
4110 LOCATE 5,1:PRINT "你升级了!";DJ;"级 ";:T$=INKEY$:JY=0:GOSUB 9994
4111 LOCATE 5,1:PRINT "体力+";HPP-I;:T$=INKEY$:GOSUB 9994
4112 LOCATE 5,1:PRINT "法力+";MPP-J;:T$=INKEY$:GOSUB 9994
4113 LOCATE 5,1:PRINT "攻击力+";GGL-G;:T$=INKEY$
4115 RETURN
4500 G=2: GOTO 601
4550 IF YPS(PP)<=0 THEN BEEP: GOTO 620
4560 YPS(PP)=YPS(PP)-1:MO=MO+INT(YP(PP)/2): GOTO 606
5000 CLS:PRINT MAP$(1);:POKE 803,AA:PRINT ;
5002 LOCATE 1,3:PRINT "※※※※※※※";:LOCATE 3,1:PRINT RW$(1);
5004 LOCATE 2,19:PRINT RW$(2);:LOCATE 3,19:PRINT "";: FOR I=1 TO 5000:NEXT
5006 FOR I=1 TO 2:CLS:PRINT GZ$(I);:T$=INKEY$:NEXT
5008 CLS:PRINT MAP$(1);:POKE 803,AA:PRINT ;
5010 LOCATE 1,3:PRINT "※※※※※※※";:LOCATE 3,1:PRINT RW$(1);
5011 LOCATE 3,19:PRINT "";:LOCATE 2,19:PRINT RW$(2);
5012 LOCATE 3,3:PRINT "";:LOCATE 4,3:PRINT "";: FOR I=1 TO 2000:NEXT
5014 FOR I=3 TO 13 STEP 2
5016 LOCATE 3,I:PRINT "※";:LOCATE 4,I:PRINT "※";
5020 FOR J=1 TO 2000:NEXT :NEXT
5022 LOCATE 3,15:PRINT "※※※";:LOCATE 4,15:PRINT "※※※";: FOR I=1 TO 5000
5024 NEXT : FOR I=3 TO 9 STEP 2:II=20-I
5026 LOCATE 3,I-2:PRINT "※";
5028 LOCATE 2,II:PRINT "※";
5030 FOR J=1 TO 2000:NEXT :NEXT :LOCATE 3,9:PRINT "※";
5031 LOCATE 2,9:PRINT RW$(1): FOR I=1 TO 5000:NEXT
5032 FOR I=3 TO 5:CLS:PRINT GZ$(I):T$=INKEY$:NEXT
5034 CLS:PRINT MAP$(2);:POKE 803,BB:PRINT ;
5036 FOR I=5 TO 2 STEP -1: FOR J=1 TO 2000:NEXT :II=I+1:IF II>5 THEN II=5
5038 LOCATE II,11:PRINT " ";:LOCATE I,11:PRINT RW$(3);:NEXT
5040 CLS:PRINT WG$(1);:T$=INKEY$
5042 CLS:PRINT MAP$(2);:POKE 803,BB:PRINT ;:LOCATE 3,11:PRINT RW$(3);
5044 FOR I=1 TO 3: FOR J=1 TO 2000:NEXT
5046 ON I GOTO 5048,5050,5052
5048 LOCATE 3,11:PRINT RW$(3): GOTO 5054
5050 LOCATE 4,11:PRINT RW$(3);:LOCATE 3,11:PRINT " ";: GOTO 5054
5052 LOCATE 4,13:PRINT RW$(3);:LOCATE 4,11:PRINT " ";
5054 NEXT :LOCATE 5,11:PRINT RW$(2);: FOR I=1 TO 2000:NEXT
5055 LOCATE 4,11:PRINT RW$(2);:LOCATE 5,11:PRINT RW$(1);: FOR I=1 TO 2000:NEXT
5056 LOCATE 3,11:PRINT RW$(2);:LOCATE 4,11:PRINT RW$(1):LOCATE 5,11:PRINT " ";
5058 FOR I=1 TO 2000:NEXT
5060 FOR I=2 TO 6:CLS:PRINT WG$(I);:T$=INKEY$:NEXT
5062 A=0:X=3:Y=11:QT=2 : GOTO 505
5100 CLS:PRINT MAP$(1);:POKE 803,AA:PRINT ;
5102 LOCATE 1,3:PRINT "※※※※※※※";
5104 LOCATE 4,1:PRINT RW$(2);:LOCATE 4,19:PRINT RW$(1);: FOR I=1 TO 2000:NEXT
5106 FOR I=3 TO 9 STEP 2:II=20-I
5108 LOCATE 4,I-2:PRINT "※";:LOCATE 4,II:PRINT "※";
5110 FOR J=1 TO 2000:NEXT :NEXT
5112 FOR I=1 TO 10:CIRCLE 79+I,48-I*3,I,1:CIRCLE 81-I,48-I*3,I,1
5114 FOR J=1 TO 400:NEXT :NEXT :T$=INKEY$:LOCATE 3,8:PRINT "全剧终":T$=INKEY$
5116 FOR I=0 TO 80:LINE I,0,I,80:LINE 160-I,0,160-I,80:NEXT : FOR I=1 TO 2000:NEXT
5118 GOTO 9800
6000 PP=2: GOTO 3700
6001 G=Y(UU(K))*8-5:H=X(UU(K))*16-8
6010 FOR I=0 TO 63:LINE G,I,G+8,I: FOR J=1 TO 50:NEXT :NEXT
6020 FOR I=-1 TO 0: FOR J=0 TO 7:CIRCLE G+4,H,J,1,-1*I: FOR II=1 TO 50:NEXT :NEXT :NEXT
6030 GGLL=XG(1):MP=MP-MF(1):GOSUB 9995: GOTO 3731
6100 G=Y(UU(K))*8:H=X(UU(K))*16-8: FOR I=7 TO 55 STEP 4
6110 CIRCLE G,I,8,0,1: FOR J=1 TO 150:NEXT :NEXT
6115 FOR I=-1 TO 0: FOR J=0 TO 7:CIRCLE G,H,J,1,-1*I
6120 FOR II=1 TO 100:NEXT :NEXT :NEXT
6130 RETURN
6200 G(1)=Y(UU(K))*8-2:H(1)=X(UU(K))*16-8
6210 G(2)=G(1)-16:H(2)=H(1):IF G(2)<0 THEN G(2)=G(1)
6220 G(3)=G(1):H(3)=H(1)-16:IF H(3)<0 THEN H(3)=H(1)
6230 G(4)=G(1):H(4)=H(1)+16:IF H(4)>60 THEN H(4)=H(1)
6240 G(5)=G(1)+16:H(5)=H(1):IF G(5)>160 THEN G(5)=G(1)
6250 FOR I=-1 TO 0: FOR J=0 TO 7: FOR II=1 TO 5
6255 CIRCLE G(II),H(II),J,1,-1*I:NEXT
6260 FOR JJ=1 TO 20:NEXT :NEXT :NEXT
6270 RETURN
6300 GOTO 6900
6310 FOR III=1 TO 10:G=INT(RND(1)*120)+20:H=INT(RND(1)*24)+20:I=INT(RND(1)*10)+10
6315 FOR II=1 TO 0 STEP -1: FOR J=0 TO I:CIRCLE G,H,J,1,II
6320 NEXT :NEXT :GOSUB 9995:NEXT :MP=MP-MF(4)
6330 RETURN
6400 U=0:K=1:IF MP<MF(P) THEN BEEP:LOCATE 5,1:PRINT NDFL$;:T$=INKEY$:3600
6402 U=0:K=1:IF X(1)-2<1 THEN 6405
6404 IF WZ(X(1)-2,Y(1))<>0 THEN U=U+1:UU(U)=WZ(X(1)-2,Y(1))
6405 IF X(1)-1=0 THEN 6416
6406 IF Y(1)-2<0 THEN 6410
6408 IF WZ(X(1)-1,Y(1)-2)<>0 THEN U=U+1:UU(U)=WZ(X(1)-1,Y(1)-2)
6410 IF WZ(X(1)-1,Y(1))<>0 THEN U=U+1:UU(U)=WZ(X(1)-1,Y(1))
6412 IF Y(1)+2>19 THEN 6416
6414 IF WZ(X(1)-1,Y(1)+2)<>0 THEN U=U+1:UU(U)=WZ(X(1)-1,Y(1)+2)
6416 IF Y(1)-4<0 THEN 6420
6418 IF WZ(X(1),Y(1)-4)<>0 THEN U=U+1:UU(U)=WZ(X(1),Y(1)-4)
6420 IF Y(1)-2<0 THEN 6424
6422 IF WZ(X(1),Y(1)-2)<>0 THEN U=U+1:UU(U)=WZ(X(1),Y(1)-2)
6424 IF Y(1)+2>19 THEN 6432
6426 IF WZ(X(1),Y(1)+2)<>0 THEN U=U+1:UU(U)=WZ(X(1),Y(1)+2)
6428 IF Y(1)+4>19 THEN 6432
6430 IF WZ(X(1),Y(1)+4)<>0 THEN U=U+1:UU(U)=WZ(X(1),Y(1)+4)
6432 IF X(1)+1>4 THEN 6500
6434 IF Y(1)-2<0 THEN 6438
6436 IF WZ(X(1)+1,Y(1)-2)<>0 THEN U=U+1:UU(U)=WZ(X(1)+1,Y(1)-2)
6438 IF WZ(X(1)+1,Y(1))<>0 THEN U=U+1:UU(U)=WZ(X(1)+1,Y(1))
6440 IF Y(1)+2>19 THEN 6444
6442 IF WZ(X(1)+1,Y(1)+2)<>0 THEN U=U+1:UU(U)=WZ(X(1)+1,Y(1)+2)
6444 IF X(1)+2>4 THEN 6500
6446 IF WZ(X(1)+2,Y(1))<>0 THEN U=U+1:UU(U)=WZ(X(1)+2,Y(1))
6500 IF K>U THEN K=1:6506 ELSE IF U>0 THEN 6506
6502 BEEP:LOCATE 5,1:PRINT "目标不在范围内!";:T$=INKEY$: GOTO 3600
6506 GOSUB 9995:LOCATE 5,1:PRINT NB$(UU(K));KP(UU(K));"/";
6507 PRINT KPP(UU(K));:G=Y(UU(K))*8-8:H=X(UU(K))*16-16
6508 BOX G,H,G+15,H+15:IF P=2 THEN 6526
6510 IF X(UU(K))-1=0 THEN 6514
6512 BOX G,H-16,G+15,H-1
6514 IF X(UU(K))+1=5 THEN 6518
6516 BOX G,H+16,G+15,H+31
6518 IF Y(UU(K))-2<0 THEN 6522
6520 BOX G-16,H,G-1,H+15
6522 IF Y(UU(K))+2>19 THEN 6526
6524 BOX G+16,H,G+31,H+15
6526 T=ASC(INKEY$):IF (T>19 AND T<24) OR T=13 OR T=27 THEN 6528 ELSE BEEP:6526
6528 IF T=27 THEN U=0:3600
6530 IF T<>13 THEN K=K+1:6500
6534 IF T=13 AND P=2 THEN GOSUB 6100:GGLL=XG(2):MP=MP-MF(2): GOTO 3731
6535 IF T=13 AND P=3 THEN GOSUB 6200:GGLL=XG(3):M=0:N=UU(K):MP=MP-MF(3): GOTO 3731
6536 M=M+1:IF M>4 THEN 3620
6537 FOR I=1 TO 4: FOR J=1 TO 19 STEP 2:WZ(I,J)=0:NEXT :NEXT
6538 FOR I=2 TO 6:WZ(X(I),Y(I))=I
6539 NEXT :ON M GOTO 6540,6544,6548,6552
6540 IF X(N)>1 THEN IF WZ(X(N)-1,Y(N))>1 THEN UU(K)=WZ(X(N)-1,Y(N)):3731
6542 GOTO 6536
6544 IF X(N)<4 THEN IF WZ(X(N)+1,Y(N))>1 THEN UU(K)=WZ(X(N)+1,Y(N)):3731
6546 GOTO 6536
6548 IF Y(N)>1 THEN IF WZ(X(N),Y(N)-2)>1 THEN UU(K)=WZ(X(N),Y(N)-2):3731
6550 GOTO 6536
6552 IF Y(N)<19 THEN IF WZ(X(N),Y(N)+2)>1 THEN UU(K)=WZ(X(N),Y(N)+2):3731
6554 GOTO 3620
6900 IF MP<MF(4) THEN BEEP:LOCATE 5,1:PRINT NDFL$;:T$=INKEY$:3600
6910 GOSUB 6310:M=0
6915 M=M+1:IF KP(M)=0 THEN 6940
6920 IF M=6 AND R<>INT(R/5)*5 THEN 6940
6930 GGLL=XG(4):UU(K)=M: GOTO 3731
6940 IF M<7 THEN 6915 ELSE 3620
7000 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2920:GOSUB 2920:RETURN
7010 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2920:GOSUB 2900:RETURN
7020 IF WZ(X(1)+1,Y(1)+2)=0 THEN GOSUB 2920:E=0:RETURN
7030 GOSUB 2900:E=0:RETURN
7050 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2920:RETURN
7060 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2900:RETURN
7080 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)+2)=0 THEN GOSUB 2900:GOSUB 2900:E=0:RETURN
7090 IF Y(1)>1 THEN IF WZ(X(1)+1,Y(1)-2)=0 THEN GOSUB 2920:GOSUB 2920:E=0:RETURN
7095 E=0:RETURN
7100 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2920:GOSUB 2900:E=1:RETURN
7110 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2900:GOSUB 2900:E=1:RETURN
7120 IF WZ(X(1)+1,Y(1)+2)=0 THEN GOSUB 2900:E=0:RETURN
7130 GOSUB 2920:E=0:RETURN
7150 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2930:GOSUB 2930:RETURN
7160 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2930:GOSUB 2900:RETURN
7170 IF WZ(X(1)+1,Y(1)-2)=0 THEN GOSUB 2930:E=0:RETURN
7180 GOSUB 2900:E=0:RETURN
7190 E=0:RETURN
7200 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2930:RETURN
7210 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2900:RETURN
7230 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)-2)=0 THEN GOSUB 2900:GOSUB 2900:E=0:RETURN
7240 IF Y(1)<19 THEN IF WZ(X(1)+1,Y(1)+2)=0 THEN GOSUB 2930:GOSUB 2930:E=0:RETURN
7245 E=0:RETURN
7250 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2930:GOSUB 2900:E=1:RETURN
7260 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2900:GOSUB 2900:E=1:RETURN
7270 IF WZ(X(1)+2,Y(1)+2)=0 THEN GOSUB 2930:RETURN
7280 IF WZ(X(1)+1,Y(1)-2))=0 THEN GOSUB 2900:RETURN
7300 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2920:GOSUB 2920:RETURN
7310 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2910:GOSUB 2920:RETURN
7320 IF WZ(X(1)-1,Y(1)+2)=0 THEN GOSUB 2920:E=0:RETURN
7330 GOSUB 2910:E=0:RETURN
7350 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2920:RETURN
7360 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2910:RETURN
7380 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)+2)=0 THEN GOSUB 2910:GOSUB 2910:E=0:RETURN
7390 IF Y(1)>1 THEN IF WZ(X(1)-1,Y(1)-2)=0 THEN GOSUB 2920:GOSUB 2920:E=0:RETURN
7395 E=0:RETURN
7400 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2920:GOSUB 2910:E=1:RETURN
7410 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2910:GOSUB 2910:E=1:RETURN
7420 IF WZ(X(1)-2,Y(1))=0 THEN GOSUB 2920:RETURN
7430 IF WZ(X(1)-1,Y(1)+2)=0 THEN GOSUB 2910:RETURN
7450 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2930:GOSUB 2930:RETURN
7460 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2930:GOSUB 2910:RETURN
7470 IF WZ(X(1)-1,Y(1)-2)=0 THEN GOSUB 2930:E=0:RETURN
7480 IF WZ(X(1),Y(1)-4)=0 THEN GOSUB 2910:E=0:RETURN
7490 E=0:RETURN
7500 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2930:RETURN
7510 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2910:RETURN
7530 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)-2)=0 THEN GOSUB 2910:GOSUB 2910:E=0:RETURN
7540 IF Y(1)<19 THEN IF WZ(X(1)-1,Y(1)+2)=0 THEN GOSUB 2930:GOSUB 2930:E=0:RETURN
7545 E=0:RETURN
7550 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2930:GOSUB 2910:E=1:RETURN
7560 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2910:GOSUB 2910:E=1:RETURN
7570 IF WZ(X(1)-2,Y(1))=0 THEN GOSUB 2930:RETURN
7580 IF WZ(X(1)-1,Y(1-2))=0 THEN GOSUB 2910:RETURN
7600 IF WZ(X(S),Y(S)-4)=0 THEN GOSUB 2920:GOSUB 2920:RETURN
7610 IF WZ(X(S)-1,Y(S)-2)=0 THEN GOSUB 2920:GOSUB 2900:RETURN
7620 IF WZ(X(S),Y(S)-2)=0 THEN GOSUB 2920:RETURN
7630 GOSUB 2900:RETURN
7650 IF WZ(X(S)-1,Y(S)-2)=0 THEN GOSUB 2920:GOSUB 2900:RETURN
7660 IF Y(S)>3 THEN IF WZ(X(S),Y(S)-4)=0 THEN GOSUB 2920:GOSUB 2920:RETURN
7670 IF WZ(X(S)-2,Y(S))=0 THEN GOSUB 2900:GOSUB 2900:RETURN
7680 I=RND(1):IF I>0.5 THEN 7690
7685 GOSUB 2900:RETURN
7690 GOSUB 2920:RETURN
7700 IF WZ(X(S),Y(S)+4)=0 THEN GOSUB 2930:GOSUB 2930:RETURN
7710 IF WZ(X(S)-1,Y(S)+2)=0 THEN GOSUB 2930:GOSUB 2900:RETURN
7720 IF WZ(X(S),Y(S)+2)=0 THEN GOSUB 2930:RETURN
7730 GOSUB 2900:RETURN
7750 IF WZ(X(S)-1,Y(S)+2)=0 THEN GOSUB 2930:GOSUB 2900:RETURN
7760 IF Y(S)<17 THEN IF WZ(X(S),Y(S)+4)=0 THEN GOSUB 2930:GOSUB 2930:RETURN
7770 IF WZ(X(S)-2,Y(S))=0 THEN GOSUB 2900:GOSUB 2900:RETURN
7780 I=RND(1):IF I>0.5 THEN 7790
7785 GOSUB 2930:RETURN
7790 GOSUB 2900:RETURN
7800 IF WZ(X(S),Y(S)-4)=0 THEN GOSUB 2920:GOSUB 2920:RETURN
7810 IF WZ(X(S)+1,Y(S)-2)=0 THEN GOSUB 2920:GOSUB 2910:RETURN
7820 IF WZ(X(S),Y(S)-2)=0 THEN GOSUB 2920:RETURN
7830 IF WZ(X(S)+1,Y(S))=0 THEN GOSUB 2910:RETURN
7850 IF WZ(X(S)+1,Y(S)-2)=0 THEN GOSUB 2920:GOSUB 2910:RETURN
7860 IF Y(S)>3 THEN IF WZ(X(S),Y(S)-4)=0 THEN GOSUB 2920:GOSUB 2920:RETURN
7870 IF WZ(X(S)+2,Y(S))=0 THEN GOSUB 2910:GOSUB 2910:RETURN
7880 I=RND(1):IF I>0.5 THEN 7890
7885 GOSUB 2910:RETURN
7890 GOSUB 2920:RETURN
7900 IF WZ(X(S),Y(S)+4)=0 THEN GOSUB 2930:GOSUB 2930:RETURN
7910 IF WZ(X(S)+1,Y(S)+2)=0 THEN GOSUB 2930:GOSUB 2910:RETURN
7920 IF WZ(X(S),Y(S)+2)=0 THEN GOSUB 2930:RETURN
7930 IF WZ(X(S)+1,Y(S))=0 THEN GOSUB 2910:RETURN
7950 IF WZ(X(S)+1,Y(S)+2)=0 THEN GOSUB 2930:GOSUB 2910:RETURN
7960 IF Y(S)<17 THEN IF WZ(X(S),Y(S)+4)=0 THEN GOSUB 2930:GOSUB 2930:RETURN
7970 IF WZ(X(S)+2,Y(S))=0 THEN GOSUB 2910:GOSUB 2910:RETURN
7980 I=RND(1):IF I>0.5 THEN 7990
7985 GOSUB 2910:RETURN
7990 GOSUB 2930:RETURN
8000 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2900:E=1:RETURN
8010 IF Y(1)<19 THEN IF WZ(X(1)+1,Y(1)+2)=0 THEN GOSUB 2900:GOSUB 2930:RETURN
8020 IF Y(1)>1 THEN IF WZ(X(1)+1,Y(1)-2)=0 THEN GOSUB 2900:GOSUB 2920:RETURN
8030 IF Y(1)<19 THEN IF WZ(X(1)+2,Y(1)+2)=0 THEN GOSUB 2930:RETURN
8040 IF Y(1)>1 THEN IF WZ(X(1)+2,Y(1)-2)=0 THEN GOSUB 2920:RETURN
8045 E=0:RETURN
8050 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2900:GOSUB 2900:E=1:RETURN
8060 IF WZ(X(1)+2,Y(1))=0 THEN GOSUB 2900:RETURN
8070 IF Y(1)>1 THEN IF WZ(X(1)+2,Y(1)-2)=0 THEN GOSUB 2900:GOSUB 2920:RETURN
8080 IF Y(1)<19 THEN IF WZ(X(1)+2,Y(1)+2)=0 THEN GOSUB 2900:GOSUB 2930:RETURN
8090 E=0:RETURN
8100 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2920:E=1:RETURN
8110 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)+2)=0 THEN GOSUB 2920:GOSUB 2900:E=0:RETURN
8120 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)+2)=0 THEN GOSUB 2920:GOSUB 2910:E=0:RETURN
8130 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)+4)=0 THEN GOSUB 2900:E=0:RETURN
8140 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)+4)=0 THEN GOSUB 2910:E=0:RETURN
8145 E=0:RETURN
8150 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2920:GOSUB 2920:E=1:RETURN
8160 IF WZ(X(1),Y(1)+4)=0 THEN GOSUB 2920:E=0:RETURN
8170 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)+4)=0 THEN GOSUB 2900:GOSUB 2920:RETURN
8180 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)+4)=0 THEN GOSUB 2910:GOSUB 2920:RETURN
8190 E=0:RETURN
8200 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2930:E=1:RETURN
8210 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)-2)=0 THEN GOSUB 2930:GOSUB 2910:RETURN
8220 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)-2)=0 THEN GOSUB 2930:GOSUB 2900:RETURN
8230 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)-4)=0 THEN GOSUB 2910:E=0:RETURN
8240 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)-4)=0 THEN GOSUB 2900:E=0:RETURN
8245 E=0:RETURN
8250 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2930:GOSUB 2930:E=1:RETURN
8260 IF WZ(X(1),Y(1)-4)=0 THEN GOSUB 2930:RETURN
8270 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)-4)=0 THEN GOSUB 2900:GOSUB 2930:RETURN
8280 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)-4)=0 THEN GOSUB 2910:GOSUB 2930:RETURN
8290 E=0:RETURN
8300 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2910:E=1:RETURN
8310 IF Y(1)>1 THEN IF WZ(X(1)-1,Y(1)-2)=0 THEN GOSUB 2910:GOSUB 2920:RETURN
8320 IF Y(1)<19 THEN IF WZ(X(1)-1,Y(1)+2)=0 THEN GOSUB 2910:GOSUB 2930:RETURN
8330 IF Y(1)>1 THEN IF WZ(X(1)-2,Y(1)-2)=0 THEN GOSUB 2920:RETURN
8340 IF Y(1)<19 THEN IF WZ(X(1)-2,Y(1)+2)=0 THEN GOSUB 2930:RETURN
8345 E=0:RETURN
8350 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2910:GOSUB 2910:E=1:RETURN
8360 IF WZ(X(1)-2,Y(1))=0 THEN GOSUB 2910:RETURN
8370 IF Y(1)>1 THEN IF WZ(X(1)-2,Y(1)-2)=0 THEN GOSUB 2910:GOSUB 2920:RETURN
8380 IF Y(1)<19 THEN IF WZ(X(1)-2,Y(1)+2)=0 THEN GOSUB 2910:GOSUB 2930:RETURN
8390 E=0:RETURN
8400 IF X(1)-X(S)=0 THEN 8450
8410 I=Y(1)*8:J=X(1)*16-16: FOR III=-1 TO 0
8415 FOR II=0 TO 7:LINE I+II,J,I+II,J+15,III^2:LINE I-II,J,I-II,J+15,III^2
8420 FOR JJ=1 TO 100:NEXT :NEXT :NEXT : GOTO 2940
8450 I=Y(1)*8-8:J=X(1)*16-8: FOR III=-1 TO 0
8455 FOR II=0 TO 7:LINE I,J+II,I+15,J+II,III*III:LINE I,J-II,I+15,J-II,III*III
8470 FOR JJ=1 TO 100:NEXT :NEXT :NEXT : GOTO 2940
8500 IF WZ(X(S),Y(S)+4)=0 THEN GOSUB 2930:GOSUB 2930:RETURN
8510 IF WZ(X(S),Y(S)+2)=0 THEN GOSUB 2930:RETURN ELSE RETURN
8600 IF WZ(X(S),Y(S)-4)=0 THEN GOSUB 2920:GOSUB 2920:E=0:RETURN
8610 IF WZ(X(S),Y(S)-2)=0 THEN GOSUB 2920:RETURN ELSE RETURN
8800 IF E=1 THEN 8400 ELSE 2050
9000 CLS:PRINT "①存档一","②存档二","③存档三","④存档四","⑤存档五";
9011 T$=INKEY$:IF (T$="b")+(T$="n")+(T$="m")+(T$="g")+(T$="h") THEN 9012 ELSE BEEP:9011
9012 GOSUB 10:LOCATE T,9:PRINT "保存中…";
9013 CLOSE #1:OPEN "DJFMJsave"+STR$(T) FOR OUTPUTAS#1
9020 WRITE #1,A,B,X,Y,MO,DJ,HP,HPP,MP,MPP,JY,JYZ,GGL,Q,R,M(1),N(1),QT,W,V
9040 FOR I=2 TO 6:WRITE #1,KP(I),KPP(I):NEXT
9050 FOR I=1 TO 6:WRITE #1,YPS(I):NEXT
9060 FOR I=1 TO 5:WRITE #1,X(I),Y(I),WZ(X(I),Y(I)):NEXT :CLOSE #1:GOSUB 9175:RETURN
9110 CLS:PRINT "①存档一","②存档二","③存档三","④存档四","⑤存档五";
9111 T$=INKEY$:IF (T$="b")+(T$="n")+(T$="m")+(T$="g")+(T$="h") THEN 9112 ELSE BEEP:9111
9112 GOSUB 10:LOCATE T,9:PRINT "载入中…";
9113 OPEN "DJFMJsave"+STR$(T) FOR INPUT AS#1
9120 INPUT #1,A,B,X,Y,MO,DJ,HP,HPP,MP,MPP,JY,JYZ,GGL,Q,R,M(1),N(1),QT,W,V
9140 FOR I=2 TO 6:INPUT #1,KP(I),KPP(I):NEXT
9150 FOR I=1 TO 6:INPUT #1,YPS(I):NEXT
9160 FOR I=1 TO 5:INPUT #1,X(I),Y(I),WZ(X(I),Y(I)):NEXT
9170 CLOSE #1:GOSUB 9175: GOTO 9180
9175 OPEN "FMYXZMAP" FOR RANDOM AS #1 LEN=128:FIELD #1,128 AS MAP$:RETURN
9180 RR=0:IF B=1 THEN 505 ELSE CLS:GOTO 2050
9200 CLS:PRINT "本程序由薛顺健开发设计,本着要把游戏做得更好的原则,但我的时间和精";
9210 PRINT "力有限,还望各位用户见谅!";:T$=INKEY$: GOTO 9300
9300 GET #1,56:CLS:PRINT MAP$;:GOSUB 9994
9320 T$=INKEY$:GOSUB 10
9325 IF T<1 OR T>6 THEN 9320
9330 I=1:ON T GOTO 9350,9360,9390,9500,9200,9800
9340 BEEP: GOTO 9320
9350 RETURN
9360 P=1:CLS:PRINT "*****";NA$(1);"的状态";"*****";: GOTO 9370
9365 T=ASC(INKEY$):IF T=20 OR T=21 OR T=27 THEN 9366 ELSE BEEP:9365
9366 IF T=20 THEN P=P-1:IF P=0 THEN BEEP:P=1:9365
9367 IF T=21 THEN P=P+1:IF P=3 THEN BEEP:P=2:9365
9368 IF T=27 AND I=1 THEN 9300 ELSE IF T=27 AND I=0 THEN 9900
9369 ON P GOTO 9370,9380
9370 LOCATE 2,1:PRINT SPC (69);
9371 LOCATE 2,1:PRINT "等级:";DJ;"级","经验:";JY;"/";JYZ,"体力:";HP;"/";HPP;
9375 GOTO 9365
9380 LOCATE 2,1:PRINT SPC (69);
9381 LOCATE 2,1:PRINT "法力:";MP;"/";MPP,"攻击力:";GGL,"金钱:";MO;
9385 GOTO 9365
9390 CLS:PRINT "①存档","②读档"
9391 T$=INKEY$:IF T$="b" OR T$="n" OR ASC(T$)=27 THEN 9392 ELSE BEEP:9391
9392 GOSUB 10:IF T=1 THEN GOSUB 9000: GOTO 9300
9393 IF T=2 THEN CLOSE #1: GOTO 9110
9394 IF ASC(T$)=27 THEN 9300
9400 CLS:PRINT "①";YP$(1);"×";:LOCATE 1,11:PRINT "④";YP$(4);"×";
9401 LOCATE 2,1:PRINT "②";YP$(2);"×";:LOCATE 2,11:PRINT "⑤";YP$(5);"×";
9402 LOCATE 3,1:PRINT "③";YP$(3);"×";:LOCATE 3,11:PRINT "⑥";YP$(6);"×";
9403 LOCATE 4,15:PRINT RW$(1);
9410 LOCATE 1,9:PRINT YPS(1);:LOCATE 1,19:PRINT YPS(4);
9411 LOCATE 2,9:PRINT YPS(2);:LOCATE 2,19:PRINT YPS(5);
9412 LOCATE 3,9:PRINT YPS(3);:LOCATE 3,19:PRINT YPS(6);
9415 T$=INKEY$:GOSUB 10
9416 IF T$=CHR$(27) THEN S=1:9490
9417 GXX(T)=GX(T):GXX(3)=HPP-HP:GXX(6)=MPP-MP
9418 IF T<4 AND HPP<HP+GX(T) THEN GXX(T)=HPP-HP
9419 IF T>3 AND MPP<MP+GX(T) THEN GXX(T)=MPP-MP
9420 IF YPS(T)=0 THEN BEEP:9415
9421 IF T>3 AND MP=MPP THEN LOCATE 5,1:PRINT AAA$(5);:BEEP:9415
9422 IF T<4 AND HP=HPP THEN LOCATE 5,1:PRINT AAA$(4);:BEEP:9415
9430 IF T>3 THEN PR$="法力+":MP=MP+GXX(T) ELSE PR$="体力+":HP=HP+GXX(T)
9460 YPS(T)=YPS(T)-1: FOR II=1 TO 0 STEP -1: FOR I=0 TO 9:CIRCLE 120,56,I,1,II
9470 FOR J=1 TO 100:NEXT :NEXT :NEXT :LOCATE 4,15:PRINT RW$(1);
9480 LOCATE 5,1:PRINT PR$;GXX(T);:T$=INKEY$:T$="Y"
9490 GOSUB 9994:RETURN
9500 GOSUB 9400: GOTO 9300
9800 CLS:PRINT " 程序设计:薛顺健 E-mail:wqstar028@mai l.china.com"
9810 PRINT " QQ:12068232 有空请和我联系!";
9820 T$=INKEY$:BOX 0,0,160,80,1,2:FOR I=1 TO 2000:NEXT:FOR I=0 TO 80
9821 BOX I,I/2,160-I,80-I/2,0,0:FOR J=1 TO 50 :NEXT:NEXT
9825 CLS:LOCATE 2,7:PRINT "谢谢使用!":LOCATE 3,9:PRINT "再见!"
9830 FOR I=1 TO 4000:NEXT:POKE 199,155
9900 GET #1,55:CLS:PRINT MAP$;:LOCATE 5,16:PRINT " ";:I=0
9910 T$=INKEY$:GOSUB 10:ON T GOTO 9920,9360,9930,9800:BEEP: GOTO 9910
9920 GOSUB 9994:RETURN
9930 GOSUB 9000: GOTO 9900
9994 LOCATE 5,1:PRINT " ";:RETURN
9995 GET #1,R+1
9996 LOCATE 1,1:PRINT MAP$;:LOCATE X(1),Y(1):PRINT RW$(1);: FOR J=2 TO 5:IF KP(J)=0 THEN 9998
9997 LOCATE X(J),Y(J):PRINT NPC$(J);
9998 NEXT :IF R=INT(R/5)*5 THEN WZ(3,19)=6
9999 RETURN
发表评论
-
不知JavaEye中还有没有用过文曲星编程的
2007-04-13 15:59 4491在JavaEye中,因为这几篇文曲星编程的文章认识了taowe ... -
调用文曲星里的英语词典中的语音(游戏发音处理)
2006-12-22 12:37 3080调动星星里的英语语音! 作者:ISAILOR-HB N ... -
互连游戏的结构(红外线无线控制)
2006-12-22 12:36 2390互连游戏的结构 我现在准备编红外互连游戏所以先介绍一下,希 ... -
在BAS文件中调用另一个BAS的方法(动态字节码加载)
2006-12-22 12:34 3995在BAS文件中调用另一个BAS的方法 原作者:houjie ... -
[原创]键盘映射
2006-12-22 12:33 3048键盘映射(按键连续操作) 映射是指按住键后程序连续操作。 ... -
RPG引擎原理讲解
2006-12-22 12:33 5094RPG引擎原理讲解! 作者:杨芹勍[Coolsoft(R)] ... -
系统内存地址PEEK值大全
2006-12-22 12:30 7897NC1020系列PEEK值 NC1020系列(包括NC102 ... -
[原创]中国象棋源码(主要实现自动走)
2006-12-22 12:26 7229中国象棋 中国象棋简介: 作者:梁飞(网名:o_o) ... -
智能五子棋 (NC1020型用)
2006-12-22 12:25 2813智能五子棋 (NC1020型用) 此算法是friday所写, ... -
四则运算(官方程序)
2006-12-22 12:21 2349四则运算(官方程序) ****四则运算**** ]10 C ... -
批量法作图(速度奇迹)
2006-12-22 12:21 3019批量法作图(速度奇迹) 余海林的创始原帖: 批量发送字 ... -
时间显示(小晶体管)控制
2006-12-22 12:20 3484时间显示(小晶体管)控制 首先,来看看时间显示的小程序(NC ... -
图像快速载入
2006-12-22 12:19 2312图像快速载入 一秒内 ... -
批量法滚屏的详解
2006-12-22 12:18 2120批量法滚屏的详解 先得了解文曲星的屏幕,为159*80,存图 ... -
文曲星读屏原理
2006-12-22 12:17 2207读屏原理 读点法原理 ... -
[原创]简易五子棋
2006-12-22 12:15 3115简易五子棋 10 GRAPH:CLS:FOR X= 4 TO ... -
[原创]文曲星GVB - 俄罗斯方块
2006-12-12 21:03 4093好久没写GVB了,都快忘记了, 上一段时间抽空写了个俄罗斯方块 ... -
高中时代的回忆
2006-12-09 19:17 5376不知还有没有用文曲星电子词典编程的朋友... 回忆那个只有16 ...
相关推荐
非常经典的的VC游戏开发入门书籍<RPG角色扮演游戏程序设计>的随书代码
利用VC++设计的rpg游戏源代码程序 直接编译运行
"Programming Role-Playing Games With Directx" 是一本专注于利用DirectX进行RPG游戏开发的专业书籍,其配套源代码提供了宝贵的实践资源。 DirectX是由微软开发的一组应用程序接口(API),主要用于多媒体,尤其是...
1.2.4 源程序调试 ILE提供了强大的调试工具,允许程序员设置断点、单步执行、查看变量值和跟踪调用栈,以便于找出并修复代码中的错误。 1.2.5 可连接的AP1 AP1可能指的是Application Program Interface (API),RPG...
本文将深入探讨“完整的RPG游戏源代码”所涵盖的关键知识点,旨在为那些对游戏编程感兴趣或正在进行游戏开发的学习者提供宝贵的学习资源。 首先,RPG游戏的源代码通常包括以下几个核心部分: 1. **游戏引擎**:RPG...
《RPG游戏源代码解析与Visual Basic编程实践》 在IT行业中,角色扮演游戏(Role-Playing Game,简称RPG)一直备受玩家喜爱,其丰富的剧情、多样化的角色设定以及策略性的战斗系统使得开发者们对RPG游戏的开发充满...
《C#实现的RPG小游戏源代码解析》 在编程世界中,C#是一种广泛应用的编程语言,尤其在游戏开发领域,它凭借其强大的性能和丰富的库支持,成为了许多开发者首选的语言之一。本篇将围绕“C#写的一个RPG小游戏源代码”...
在这个压缩包中,85413945号文件很可能是项目的核心部分,它可能包含了游戏的主程序、游戏逻辑、角色和物品数据、地图编辑器、用户界面等多个方面的源代码。接下来我们将对RPG游戏源代码中的关键知识点进行详细的...
"一款RPG游戏源代码" 指的是这是一款基于角色扮演游戏(Role-Playing Game)原理开发的手机游戏的原始编程代码。RPG游戏通常包含丰富的剧情、角色发展和交互元素,玩家在游戏中扮演特定角色,通过探索、战斗、决策等...
【RPG小游戏源代码】是基于C++编程语言开发的一款角色扮演游戏(Role-Play Game)。在C++这个强大的面向对象编程环境中,开发者可以利用其高效性、灵活性和丰富的库资源来构建复杂的游戏逻辑和生动的视觉体验。下面...
游戏源代码RPG 游戏 一个简单的RPG游戏 游戏源代码RPG 游戏 一个简单的RPG游戏 游戏源代码RPG 游戏 一个简单的RPG游戏 游戏源代码RPG 游戏 一个简单的RPG游戏 游戏源代码RPG 游戏 一个简单的RPG游戏
RPG程序开发涉及多个技术领域,包括游戏逻辑、图形渲染、音效处理、数据结构、网络通信等。下面将深入探讨RPG程序设计中的关键知识点。 1. **编程语言选择**:RPG游戏的开发通常涉及到多种编程语言,如C++用于游戏...
这是我做的第一个RPG游戏,没有盛情,不过基本上的可以对人物进行对话,人物表情,各种场景的切换,和怪物战斗.... 大家要是觉得还行的话就拿去研究吧! 只要将工程导入Eclipse就可以了!分辨率240*320
【简单的RPG对战源代码】是一个基于VC2005开发的简易角色扮演游戏(RPG)对战程序。此项目旨在提供一个基础的游戏框架,让开发者了解如何在Windows环境下运用WIN32 API来实现基本的游戏逻辑。让我们深入探讨这个项目...
《C++实现的RPG简易小游戏源代码解析》 在编程世界中,角色扮演游戏(RPG)游戏是一种深受玩家喜爱的游戏类型。利用C++这种强大的编程语言,开发者能够创建出功能丰富的RPG游戏。本篇将详细介绍一个由C++编写的RPG...
在本资源中,我们主要关注的是"RPG游戏的一些源代码vc++",这表明它包含了一款基于VC++开发的角色扮演游戏(Role-Playing Game,RPG)的源代码示例。VC++是Microsoft Visual C++的简称,是一款用于Windows平台上的...
《英雄救美》是一款经典的入门级角色扮演游戏(RPG)源代码,对于初学者来说,这是一个极好的学习资源。这个游戏的开发旨在帮助程序员理解和实践游戏编程的基础知识,从而提升编程技能。通过研究这个项目的源代码,...
源物理文件是存储 RPG 语言源程序的文件。为了建立存放源程序的源物理文件,需要使用 CRTSRCPF 命令。CRTSRCPF 命令的语法规则如下: CRTSRCPF <源物理文件名> 例如: CRTSRCPF MYRPGSRC 建立了一个名为 ...
### RPG程序开发基础知识点 #### 一、RPG程序概述 RPG(Report Program Generator)是一种专门为IBM AS/400及其后续系统设计的高级编程语言。它主要用于商业应用程序的开发,尤其是那些需要处理大量数据的报表应用...
本资源提供了一个RPG游戏的源代码,这对于想要深入理解游戏开发的程序员来说是宝贵的教材。以下是基于这个主题的详细知识点讲解: 1. **游戏引擎**:RPG游戏通常基于某种游戏引擎构建,如Unity、Unreal Engine或...