
10 IF PEEK (0)=26 THEN 25 
15 PRINT "ЦbGVBASIC̭B!IJHURO:
","LOAD";CHR$(34);"SUB";CHR$(158),"RUN";CHR$(158)
20 PRINT "`:u";CHR$(158);"v";::WHILE PEEK 
(199)<128:END 
25 GRAPH:PRINT "  "
30 PRINT " wּ","  sC  "
40 PRINT "  hXC "," "; 
50 GOSUB 9500 
60 GM=TS:IF GM<>27 AND GM<>1 THEN 120 
70 LOCATE 3,5:PRINT "@̡GN":LOCATE 4,4:PRINT "vbsm?sina.com 
80 BOX 123,32,124,44,1,0:LINE 123,36,124,36 
90 LINE 126,36,126,45 
100 BEEP 
110 END 
120 CLS:PRINT "***** l]f ***** 
125 LOCATE 3,5:PRINT "縥ƶqJ2":LOCATE 4,5:PRINT "縥oqJ40 
130 K=0:TS=GM:IC=2:IB=40 
140 WHILE K<>13 
150 BOX 24,TS*16+32,134,TS*16+46,1,2 
160 BOX 23,31,135,63 
170 K=ASC(INKEY$) 
180 BOX 24,TS*16+32,134,TS*16+46,1,2 
190 IF K=20 OR K=21 THEN TS=K-20:IF GM THEN TS=1 
200 IF K=23 AND TS=0 AND IC>2 THEN IC=IC-1 
210 IF K=22 AND TS=0 AND IC<9 THEN IC=IC+1 
220 IF K=23 AND TS AND IB>10 THEN IB=IB-10 
230 IF K=22 AND TS AND IB<90 THEN IB=IB+10 
240 IF K=27 THEN 25 
250 LOCATE 3,15:PRINT IC;" 
260 LOCATE 4,15:PRINT IB;" 
270 WEND:EC=IC 
290 CM=0:T1=0: FOR T=1 TO IC 
300 LOCATE 2,1:PRINT " "T"縥O"SPC (9)"ܪa"SPC (11)"ܹq 
310 GOSUB 9500:IF TS=27 THEN 25 
320 SM(T)=TS:SB%(T)=IB:IF TS=1 THEN T2=T2+1 
330 NEXT 
340 IF T2<2 OR T2=IC THEN 400 
350 LOCATE 2,1:PRINT " q覡"SPC (9)"qV"SPC (11)"qp 
360 GOSUB 9500:IF TS=27 THEN 25 
370 CG=TS 
400 CLS:BOX 1,16,160,79,1:PRINT "bt縥... 
410 FOR T=1 TO 65 
420 CIRCLE RND(1)*150+5,RND(1)*60+20,RND(1)*6+4,1,0 
430 NEXT 
440 FOR T=1 TO IC 
450 SX%(T)=RND(1)*150+5:SY%(T)=RND(1)*58+20 
455 FOR T1=T-1 TO 1 STEP -1:IF ABS(SX%(T)-SX%(T1))<6 OR ABS(SY%(T)-SY%(T1))<5 
THEN 450 
460 NEXT :CIRCLE SX%(T),SY%(T),10,1,0:NEXT 
465 FOR T=1 TO IC 
470 TX=SX%(T):TY=SY%(T):IF SX%(T)<80 THEN ST(T)=1 ELSE ST(T)=0 
480 TT=ST(T):GOSUB 9000 
490 LOCATE 1,1:PRINT "bո";T;"縥... 
500 FOR T1=1 TO 4:BOX TX-3,TY-3,TX+3,TY+2,1,2 
510 FOR T2=1 TO 650:NEXT :NEXT :NEXT 
550 F=0:CM=0:AS=0:NT=NT+1:IF NT>IC THEN NT=1 
552 IF SB%(NT)<1 THEN 550 
555 SV=SV+1:IF SV>9 THEN 8500 
557 C=90:SC=180-ST(NT)*180:LINE 1,16,160,16 
560 IF SM(NT) THEN 2010 
561 CY%=SY%(NT):CX%=SX%(NT)+ST(NT)*28-14:IF CX%>0 THEN DRAW CX%,CY%,2 
562 LOCATE 1,1:PRINT NT;"?:";SB%(NT)SPC (19-POS (1)) 
565 CIRCLE 82,7,7,1:BOX 92,4,157,11 
567 BOX 67,2,71,13,1:LINE 76+ST(NT)*7,7,82+ST(NT)*7,7,0 
570 WHILE AS<>1 OR PEEK (205)<>255 
580 TX=SX%(NT):TY=SY%(NT):PY=TY 
590 IF PEEK (201)=251 AND TY>18 THEN TY=TY-1:710 
600 IF PEEK (201)=247 AND TY<77 THEN TY=TY+1:710 
610 IF PEEK (205)=127 AND TX>5 THEN TX=TX-1:ST(NT)=0:700 
620 IF PEEK (201)=127 AND TX<156 THEN TX=TX+1:ST(NT)=1:700 
630 IF PEEK (205)=191 THEN AS=1:F=F+2:BOX 90+F,4,91+F,11,1,2:IF F>64 THEN 910 
640 IF PEEK (201)=191 AND C<176 THEN C=C+5:760 
650 IF PEEK (204)=127 AND C>4 THEN C=C-5:760 
660 IF PEEK (202)=254 THEN 10 
670 IF PEEK (199)=130 OR PEEK (199)=134 OR PEEK (199)=152 THEN END 
690 GOTO 850 
700 PX=TX+4*(TX-SX%(NT)):GOSUB 9100:IF SX%(NT)<>TX AND PS THEN 850 
710 IF SY%(NT)<>TY AND PEEK (2496+INT(TX/8)+TY*20+(TY-SY%(NT))*60) THEN 850 
720 CM=CM+1:IF CM>20 THEN TX=SX%(NT):TY=SY%(NT):TT=ST(NT):GOSUB 9000: GOTO 760 
725 BOX 68,3,70,3+CM*.47,0,0 
730 BOX SX%(NT)-3,SY%(NT)-2,SX%(NT)+3,SY%(NT)+1,1,0 
740 SX%(NT)=TX:SY%(NT)=TY 
750 TT=ST(NT):GOSUB 9000 

760 CIRCLE 82,7,7,1 
770 SC=-95-C+ST(NT)*2*C 
780 T1=COS(SC*.0175)*7:T2=SIN(SC*.0175)*7 
790 LINE 82,7,82+T1,7+T2,0 
800 IF CX%>0 THEN DRAW CX%,CY%,2 
810 CX%=SX%(NT)+T1*2 
820 CY%=SY%(NT)+T2*2 
830 IF CX%>0 THEN DRAW CX%,CY%,2 
840 GOTO 900 
850 T=T+.2:IF T>2 THEN T=0 
860 LINE TX-2,TY,TX+2,TY,INT(T) 
900 WEND 
910 IF CX%>0 THEN DRAW CX%,CY%,2 
920 F=F+10:LINE TX-2,TY,TX+2,TY 
930 IF SC>0 OR SC<-180 THEN G=6 ELSE G=-6 
940 LOCATE 1,1:PRINT " e k kk k 
950 BX%=SX%(NT)-6+ST(NT)*12 
960 BY%=SY%(NT):BT=0:LX%=BX%:LY%=BY%:PX=0 
970 WHILE BX%>2 AND BX%<159 AND BY%<80 
980 BT=BT+.4/SQR(F/1.3) 
990 BX%=LX%+F*COS(SC*.0175)*BT 
1000 BY%=LY%+F*SIN(SC*.0175)*BT-G*BT^2 
1005 IF BY%<17 THEN BY%=17 
1010 IF PY<80 AND PX>2 AND PX<159 THEN GOSUB 8700 
1020 PX=BX%:PY=BY%:K=PEEK (2496+PY*20+INT(PX/8)) 
1030 IF PY<80 AND PX>2 AND PX<159 THEN GOSUB 8700 ELSE 1090 
1040 IF K=0 THEN 1090 
1050 PX=PX-1+ST(NT)*2:GOSUB 9100:IF PS THEN 1100 
1060 PX=BX%:GOSUB 9100:IF PS THEN 1100 
1090 WEND: GOTO 550 
1100 PLAY "O1L10F": FOR T=1 TO 9 STEP .5 
1110 CIRCLE BX%,BY%,9,1:CIRCLE BX%,BY%,T,1,2:CIRCLE BX%,BY%,T,1,0 
1120 NEXT 
1130 FOR T=1 TO IC 
1140 TX=SX%(T):TY=SY%(T):TT=ST(T):IF SB%(T)>0 THEN GOSUB 9000 
1150 NEXT 
1160 GOTO 1240 
1170 LOCATE 1,1:PRINT T;"縥u"TAB (14)"?:";SB%(PC);SPC (20-POS (1)) 
1180 CIRCLE TX,TY,5,0,2 
1190 T1=18+INT(F/11): FOR T2=SB%(PC) TO SB%(PC)-T1 STEP -.5 
1200 LOCATE 1,17:PRINT INT(T2);SPC (20-POS (1)):NEXT 
1210 SB%(PC)=SB%(PC)-T1 
1211 CIRCLE TX,TY,5,0,2 
1212 IF SB%(PC)>0 THEN 1220 
1215 FOR T1=1 TO 9 STEP .5:CIRCLE TX,TY,9,1:CIRCLE TX,TY,T1,1,0 
1216 PLAY "O4L200B":NEXT 
1219 EC=EC-1:BX%=TX:BY%=TY:F=130: GOTO 1240 
1220 FOR T2=1 TO 1200:NEXT 
1230 GOTO 1260 
1240 FOR T=1 TO IC:TX=SX%(T):TY=SY%(T) 
1250 IF ABS(BX%-TX)<12 AND ABS(BY%-TY)<10 AND SB%(T)>0 THEN PC=T:1170 
1260 NEXT :LOCATE 1,1:PRINT SPC (20):LOCATE 1,1 
1270 IF EC>1 THEN 550 
1280 IF EC THEN 1295 
1285 PRINT ":";IC;"縥QII 
1290 WHILE PEEK (201)=255:WEND:T$=INKEY$: GOTO 10 
1295 FOR T=1 TO IC 
1300 IF SB%(T)>0 THEN PRINT ":";T;"縥ͱۦkI":1320 
1310 NEXT 
1320 TX=SX%(T):TY=SY%(T):TT=ST(T):IF TT THEN MX=2 ELSE MX=-2 
1340 LINE 1,TY-3,160,TY-3,0:LINE 1,TY+2,160,TY+2,0 
1350 WHILE TX>2 AND TX<158 
1360 TX=TX+MX 
1370 IF TX>4 THEN BOX ABS(SX%(T)-MX*4),TY-3,ABS(TX-MX*4),TY+2,1,0:GOSUB 9000 
1380 WEND 
1390 GOTO 10 
2010 LOCATE 1,1:PRINT ":";NT;"qƾԤ... 
2020 C=0:T1=200:ST=0:TX=SX%(NT):TY=SY%(NT) 
2025 FOR T=1 TO 6:BOX TX-3,TY-3,TX+3,TY+2,1,2 
2030 FOR T1=1 TO 750:NEXT :NEXT 
2035 FOR T=1 TO IC 
2040 IF SB%(T)<1 THEN 2070 
2050 T2=SQR((SX%(NT)-SX%(T))^2+(SY%(NT)-SY%(T))^2) 
2060 IF T1>T2 AND T<>NT AND (CG=0 OR SM(T)=0) THEN T1=T2:C=T 
2070 NEXT 
2075 IF C=0 THEN LOCATE 1,1:PRINT ":q̲jI ":1290 
2080 MX=SX%(C)-SX%(NT) 
2090 MY=SY%(C)-SY%(NT) 
2100 IF MX THEN X=MX/ABS(MX) ELSE X=1 
2110 IF MY THEN Y=MY/ABS(MY) ELSE Y=1 
2112 IF ABS(MX)>5 AND ABS(MX)<30 THEN X=-X:2127 
2115 FOR T=SX%(NT) TO SX%(C) STEP X 
2120 IF PEEK (2496+SY%(NT)*20+INT(T/8)) AND INT(T/8)<>INT(SX%(NT)/8) THEN 
X=-X:2127 
2125 NEXT 
2127 IF ABS(MY)>5 AND ABS(MY)<20 THEN Y=-Y:2140 
2128 FOR T=SY%(NT)+Y*4 TO SY%(C) STEP Y 
2130 IF PEEK (2496+T*20+INT(SX%(NT)/8)) THEN Y=-Y:2140 
2135 NEXT 
2140 IF X>0 THEN ST(NT)=1 ELSE ST(NT)=0 
2150 TT=ST(NT) 
2160 WHILE ST<35 
2170 PX=SX%(NT)+X*5:PY=SY%(NT):GOSUB 9100 
2180 IF PS THEN 2250 
2190 IF SX%(NT)<5 OR SX%(NT)>155 THEN 2250 
2200 BOX SX%(NT)-3,SY%(NT)-2,SX%(NT)+3,SY%(NT)+1,1,0 
2210 SX%(NT)=SX%(NT)+X:TX=SX%(NT):TY=SY%(NT):GOSUB 9000 
2220 ST=ST+1 
2250 IF PEEK (2496+(SY%(NT)+Y*5)*20+INT(SX%(NT)/8)) THEN 2290 
2260 IF SY%(NT)<23 OR SY%(NT)>76 THEN 2290 
2270 BOX SX%(NT)-3,SY%(NT)-2,SX%(NT)+3,SY%(NT)+1,1,0 
2280 SY%(NT)=SY%(NT)+Y:TX=SX%(NT):TY=SY%(NT):GOSUB 9000 
2290 ST=ST+1 
2300 WEND 
2310 MX=SX%(C)-SX%(NT) 
2320 MY=SY%(C)-SY%(NT) 
2330 IF MX THEN X=MX/ABS(MX) ELSE X=1 
2340 IF X>0 THEN ST(NT)=1 ELSE ST(NT)=0 
2350 MX=MX-X*6 
2360 TT=ST(NT):GOSUB 9000 
3000 IF MX THEN TG=MY/MX ELSE TG=999 
3010 IF MY>0 THEN PC=0 ELSE PC=1 
3020 IF TG>0 AND TG<=.33 THEN SC=18 
3030 IF TG>.33 AND TG<=.73 THEN SC=36 
3040 IF TG>.73 AND TG<=1.39 THEN SC=54 
3050 IF TG>1.39 AND TG<=3.12 THEN SC=72 
3060 IF TG>3.12 THEN SC=85 
3070 IF TG<-3.03 THEN SC=93 
3080 IF TG>=-3.03 AND TG<-1.36 THEN SC=108 
3090 IF TG>=-1.36 AND TG<-.72 THEN SC=127 
3100 IF TG>=-.72 AND TG<-.32 THEN SC=144 
3110 IF TG>=-.32 AND TG<0 THEN SC=162 
3120 SC=SC+PC*180 
3130 IF SC>180 THEN G=-4.8 ELSE G=4.8 
3150 F=ABS(MX/COS(SC*.0175))*SQR(ABS(G/(MX*TAN(SC*.0175)-MY))) 
3160 IF F<17 THEN F=17 
3170 IF F>150 THEN F=150 
3180 GOTO 940 
8000 END 
8500 LOCATE 1,1:PRINT "ȦsAеy... 
8510 OPEN "SubTemp" FOR OUTPUTAS#1 
8520 WRITE #1,IC,EC,NT,GM,LM,CG 
8530 FOR T=1 TO IC 
8540 WRITE #1,SM(T),ST(T),SB%(T),SX%(T),SY%(T) 
8550 NEXT 
8560 CLOSE #1 
8570 CLEAR 
8580 OPEN "SubTemp" FOR INPUT AS#1 
8590 INPUT #1,IC,EC,NT,GM,LM,CG 
8600 FOR T=1 TO IC 
8610 INPUT #1,SM(T),ST(T),SB%(T),SX%(T),SY%(T) 
8620 NEXT 
8630 CLOSE #1 
8640 GOTO 557 
8700 BOX PX-2+ST(NT),PY-1,PX+1+ST(NT),PY+1,0,2 
8710 LINE PX+2-ST(NT)*4,PY-1,PX+2-ST(NT)*4,PY+1,2 
8720 RETURN 
9000 BOX TX-3,TY-2,TX+3,TY+2,1,0 
9010 BOX TX-2+TT,TY-1,TX+1+TT,TY+1 
9020 LINE TX-3,TY,TX+3,TY 
9030 LINE TX+3-TT*6,TY-1,TX+3-TT*6,TY+1,2 
9040 LINE TX-1+TT,TY-2,TX+TT,TY-2 
9050 RETURN 
9100 K=PEEK (INT(PX/8)+PY*20+2496) 
9110 TP=INT(PX-8*INT(PX/8)+1.55) 
9120 FOR PC=TP TO 8 
9130 TK=K:K=INT(K/2) 
9140 NEXT 
9150 PS=TK-K*2 
9160 RETURN 
9500 K=0:TS=0:BOX 40,31,119,63 
9510 WHILE K<>13 
9520 BOX 41,TS*16+32,118,TS*16+46,1,2 
9530 K=ASC(INKEY$):IF K=27 THEN TS=27:9570 
9540 BOX 41,TS*16+32,118,TS*16+46,1,2 
9550 IF K=20 OR K=21 THEN TS=K-20 
9560 WEND 
9570 RETURN 