10 GRAPH
20 DIM GUNX(5)
30 DIM GUNY(5)
40 DIM EX(6)
50 DIM EY(6)
60 DIM EXD(6)
70 DIM EYD(6)
80 DIM EYZ(6)
90 DIM EGY(6)
100 DIM EGX(6)
110 DIM EGXD(6)
120 DIM EGYD(6)
130 DIM EGZ(6)
140 CLS:PRINT "   DATE Software"
150 PRINT "   *************"
160 PRINT "    "
170 LOCATE 4,1
180 PRINT "Copyright Date soft"
190 A$=INKEY$
200 IF A$="" THEN  GOTO 190
210 CLS:LOCATE 1,8:PRINT "Ϸʾ"
220 LOCATE 2,1:PRINT "ע:ҪBASIC,GVBasicִб!"
230 K$=INKEY$
240 CLEAR
250 CLS:XZ=1
260 CLS:PRINT "***<<Ǳͧս>>***"
270 LOCATE 2,5
280 PRINT "1.ʼϷ"
290 LOCATE 3,5
300 PRINT "2.Ϸ˵"
310 LOCATE 4,5
320 PRINT "3.˳Ϸ"
330 IF XZ=1 THEN LOCATE 2,3:PRINT CHR$(3)
340 IF XZ=2 THEN LOCATE 3,3:PRINT CHR$(3)
350 IF XZ=3 THEN LOCATE 4,3:PRINT CHR$(3)
360 K$=INKEY$
370 IF K$=CHR$(13) AND XZ=1 THEN  GOTO 880
380 IF K$=CHR$(13) AND XZ=2 THEN  GOTO 540
390 IF K$=CHR$(13) AND XZ=3 THEN  GOTO 480
400 IF K$="b" THEN  GOTO 880
410 IF K$="m" THEN  GOTO 540
420 IF K$="n" THEN  GOTO 480
430 IF K$=CHR$(21) THEN XZ=XZ+1
440 IF K$=CHR$(20) THEN XZ=XZ-1
450 IF XZ=0 THEN XZ=3
460 IF XZ=4 THEN XZ=1
470 GOTO 260
480 CLS:LOCATE 3,2:PRINT "˳𣿣N"
490 K$=INKEY$:IF K$<>"y" THEN  GOTO 260
500 CLS:LOCATE 1,8:PRINT "лʹ"
510 LOCATE 2,1:PRINT "ߣ Email:haoxinli1234@163.com"
520 K$=INKEY$
530 END
540 CLS:LOCATE 1,8:PRINT "Ϸ"
550 LOCATE 2,1:PRINT "ƣҷƶǱͧ  Q,A,Zڲͬλ÷ӵ."
560 K$=INKEY$
570 CLS:LOCATE 1,8:PRINT "Ϸ"
580 LOCATE 2,1:PRINT "Ϸа[x]ԷصϷ˵."
590 K$=INKEY$
600 CLS:LOCATE 1,8:PRINT "Ϸ"
610 LOCATE 2,1:PRINT "Ϣ:µWindowsµGVBasic༭!.г"
620 K$=INKEY$
630 CLS:LOCATE 1,8:PRINT "Ϸ"
640 LOCATE 2,1:PRINT "WindowsQBasic﷨д,ôк!ڷΪ"
650 K$=INKEY$
660 CLS:LOCATE 1,8:PRINT "Ϸ"
670 LOCATE 2,1:PRINT "GVBasicʱϵͳԶ,ͬʱ﷨ĲҲԽз "
680 K$=INKEY$
690 CLS:LOCATE 1,8:PRINT "Ϸ"
700 LOCATE 2,1:PRINT ".ֻҪWindows,Բ޸ľֲ"
710 K$=INKEY$
720 CLS:LOCATE 1,8:PRINT "Ϸ"
730 LOCATE 2,1:PRINT "رͼ!!ͿڵֱӿϷ!!̫!"
740 K$=INKEY$
750 CLS:LOCATE 1,8:PRINT "Ϸ"
760 LOCATE 2,1:PRINT "ϵͳṩ˺ܶĳƸ,򿪷!!!!"
770 K$=INKEY$
780 CLS:LOCATE 1,8:PRINT "Ϸ"
790 LOCATE 2,1:PRINT "[Ǳͧս]ߵĽ!Ǳ̾ô!"
800 K$=INKEY$
810 CLS:LOCATE 1,8:PRINT "Ϸ"
820 LOCATE 2,1:PRINT "Ķ?ϵ! : Email:haoxinli1234@163.com"
830 K$=INKEY$
840 CLS:LOCATE 1,8:PRINT "Ϸ"
850 LOCATE 2,1:PRINT "ַ:ɽѧԺ ѧϵ 99 ʱ:250014"
860 K$=INKEY$
870 GOTO 260
880 CLS:XZ=1
890 CLS:PRINT "***<<Ѷ趨>>***"
900 LOCATE 2,5
910 PRINT "1.ѶȽϵ"
920 LOCATE 3,5
930 PRINT "2.Ѷһ"
940 LOCATE 4,5
950 PRINT "3.Ѷȼ"
960 IF XZ=1 THEN LOCATE 2,3:PRINT CHR$(3)
970 IF XZ=2 THEN LOCATE 3,3:PRINT CHR$(3)
980 IF XZ=3 THEN LOCATE 4,3:PRINT CHR$(3)
990 K$=INKEY$
1000 IF K$=CHR$(13) AND XZ=1 THEN ESM=2:EGRND=6:GUNS=2: GOTO 1110
1010 IF K$=CHR$(13) AND XZ=2 THEN ESM=3:EGRND=6:GUNS=2: GOTO 1110
1020 IF K$=CHR$(13) AND XZ=3 THEN ESM=4:EGRND=6:GUNS=2: GOTO 1110
1030 IF K$="b" THEN ESM=2:EGRND=15:GUNS=1: GOTO 1110
1040 IF K$="m" THEN ESM=4:EGRND=10:GUNS=3: GOTO 1110
1050 IF K$="n" THEN ESM=6:EGRND=20:GUNS=2: GOTO 1110
1060 IF K$=CHR$(21) THEN XZ=XZ+1
1070 IF K$=CHR$(20) THEN XZ=XZ-1
1080 IF XZ=0 THEN XZ=3
1090 IF XZ=4 THEN XZ=1
1100 GOTO 890
1110 CLS
1120 X=70
1130 Y=17
1140 MAXLIFE=4
1150 L=MAXLIFE
1160 EML=3
1170 EX=40
1180 EY=40
1190 XD=8
1200 YD=1
1210 GUNYD=8
1220 LB$=CHR$(23)
1230 RB$=CHR$(22)
1240 GL1$="Q"
1250 GL2$="q"
1260 GM1$="A"
1270 GM2$="a"
1280 GR1$="Z"
1290 GR2$="z"
1300 GOSUB 2880
1310 LOCATE 1,4:PRINT "SCORES:";SCR
1320 IF PEEK (199)<128 THEN  GOTO 1400
1330 KZ$=INKEY$
1340 IF KZ$=LB$ THEN  GOTO 2710OTO1400
1350 IF KZ$=RB$ THEN  GOTO 2740OTO1400
1360 IF KZ$="X" OR KZ$="x" THEN  GOTO 240
1370 IF KZ$=GL1$ OR KZ$=GL2$ THEN GX=X-7:GY=Y+4:GOSUB 2550OTO1400
1380 IF KZ$=GM1$ OR KZ$=GM2$ THEN GX=X:GY=Y+4:GOSUB 2550OTO1400
1390 IF KZ$=GR1$ OR KZ$=GR2$ THEN GX=X+7:GY=Y+4:GOSUB 2550OTO1400
1400 IF X>151 THEN X=151
1410 IF X<29 THEN X=29
1420 GOSUB 2770
1430 FOR XUN=1 TO GUNS
1440 IF GUNY(XUN)=0 THEN  GOTO 1530
1450 DRGX=GUNX(XUN):DRGY=GUNY(XUN)
1460 LINE DRGX,DRGY-1,DRGX,DRGY+4,0
1470 GUNY(XUN)=GUNY(XUN)+GUNYD
1480 IF GUNY(XUN)>75 THEN GUNY(XUN)=0
1490 IF GUNY(XUN)=0 THEN  GOTO 1530
1500 DRGX=GUNX(XUN)
1510 DRGY=GUNY(XUN)
1520 LINE DRGX,DRGY-1,DRGX,DRGY+4,1
1530 NEXT XUN
1540 FOR XUN=1 TO ESM
1550 IF EZ(XUN)=0 THEN  GOTO 2280
1560 EX=EX(XUN):EY=EY(XUN)
1570 IF EZ(XUN)<>3 OR EX(XUN)<X-7 OR EX(XUN)>X+7 OR EGZ(XUN)<>0 THEN  GOTO 1640
1580 EGZ(XUN)=3
1590 EGX(XUN)=EX(XUN)
1600 EGY(XUN)=EY(XUN)
1610 EGYD(XUN)=-6
1620 EGXD(XUN)=0
1630 GOTO 1700
1640 IF INT(RND(1)*EGRND)<>0 OR EZ(XUN)<>1 OR EGZ(XUN)<>0 OR EY(XUN)<40 THEN  GOTO 1700
1650 EGZ(XUN)=1
1660 EGX(XUN)=EX(XUN)
1670 EGY(XUN)=EY(XUN)
1680 EGYD(XUN)=-3
1690 IF EGX(XUN)<=X THEN EGXD(XUN)=4 ELSE EGXD(XUN)=-4
1700 BOX EX-4,EY-2,EX+4,EY+2,1,0
1710 IF EY<>25 THEN  GOTO 1750
1720 IF EX>X+5 OR EX<X-5 THEN  GOTO 1750
1730 GOSUB 2810
1740 EZ(XUN)=0
1750 IF EZ(XUN)<>2 OR EY(XUN)>=25 THEN  GOTO 1800
1760 EY(XUN)=25
1770 IF EX(XUN)>=X THEN EXD(XUN)=-2
1780 IF EX(XUN)<=X THEN EXD(XUN)=2
1790 EYD(XUN)=0
1800 IF EZ(XUN)=2 AND (EX(XUN)>151 OR EX(XUN)<29) THEN EXD(XUN)=-EXD(XUN):EX(XUN)=EX(XUN)+EXD(XUN)
1810 IF EX(XUN)>151 OR EX(XUN)<29 THEN EZ(XUN)=0
1820 IF EY(XUN)<25 THEN EY(XUN)=0:EZ(XUN)=0
1830 EX(XUN)=EX(XUN)+EXD(XUN)
1840 EY(XUN)=EY(XUN)+EYD(XUN)
1850 EX=EX(XUN)
1860 EY=EY(XUN)
1870 FOR XUN1=0 TO GUNS
1880 IF GUNY(XUN1)=0 THEN  GOTO 2050
1890 IF EX>GUNX(XUN1)+6 OR EX<GUNX(XUN1)-6 THEN  GOTO 2050
1900 IF EY>GUNY(XUN1)+6 OR EY<GUNY(XUN1)-6 THEN  GOTO 2050
1910 EZ(XUN)=0
1920 BX=GUNX(XUN1)
1930 BY=GUNY(XUN1)
1940 FOR DB=0 TO 7
1950 CIRCLE BX,BY,DB,0,1
1960 NEXT DB
1970 FOR DB=0 TO 7
1980 CIRCLE BX,BY,DB,0,0
1990 NEXT DB
2000 SCR=SCR+INT(RND(1)*5)+10
2010 LOCATE 1,4:PRINT "SCORES:";SCR
2020 BOX BX-9,BY-9,BX+9,BY+9,1,0
2030 GOSUB 2600
2040 GUNY(XUN1)=0
2050 NEXT XUN1
2060 IF EZ(XUN)>0 THEN GOSUB 2630
2070 NEXT XUN
2080 FOR XUN=0 TO ESM
2090 IF EGZ(XUN)=0 THEN  GOTO 2250
2100 EGX=EGX(XUN)
2110 EGY=EGY(XUN)
2120 IF EGZ(XUN)<>1 THEN  GOTO 2140
2130 IF EGXD(XUN)<>0 AND EGX<X+5 AND EGX>X-5 OR EGY<45 THEN EGXD(XUN)=0
2140 LINE EGX,EGY-2,EGX,EGY+2,0
2150 EGX(XUN)=EGX(XUN)+EGXD(XUN)
2160 EGY(XUN)=EGY(XUN)+EGYD(XUN)
2170 IF (EGX(XUN)>28 OR EGX(XUN)<152) AND EGY(XUN)>24 THEN  GOTO 2210
2180 EGZ(XUN)=0
2190 IF EGX(XUN)>X+4 OR EGX(XUN)<X-4 THEN  GOTO 2210
2200 GOSUB 2810
2210 IF EGZ(XUN)=0 THEN  GOTO 2250
2220 EGX=EGX(XUN)
2230 EGY=EGY(XUN)
2240 LINE EGX,EGY-2,EGX,EGY+2,1
2250 NEXT XUN
2260 GOTO 1320
2270 END
2280 LX=INT(RND(1)*EML)+1
2290 EZ(XUN)=LX
2300 IF LX=1 THEN  GOTO 2340
2310 IF LX=2 THEN  GOTO 2420
2320 IF LX=3 THEN  GOTO 2470
2330 GOTO 1560
2340 EY(XUN)=INT(RND(1)*34)+34
2350 EYD(XUN)=0
2360 IF INT(RND(1)*2)=1 THEN YDFX=1 ELSE YDFX=-1
2370 EXD(XUN)=INT(RND(1)*3)+3*YDFX
2380 IF EXD(XUN)=0 THEN  GOTO 2360
2390 IF EXD(XUN)>0 THEN EX(XUN)=30
2400 IF EXD(XUN)<0 THEN EX(XUN)=151
2410 GOTO 2330
2420 EX(XUN)=INT(RND(1)*120)+29
2430 EYD(XUN)=(INT(RND(1)*3)+1)*-1
2440 EXD(XUN)=(INT(RND(1)*3)+1)*-1
2450 EY(XUN)=72
2460 GOTO 2330
2470 EY(XUN)=INT(RND(1)*15)+50
2480 EYD(XUN)=0
2490 FX=INT(RND(1)*2)
2500 IF FX=1 THEN EXD(XUN)=INT(RND(1)*3)+4
2510 IF FX=0 THEN EXD(XUN)=(INT(RND(1)*3)+4)*-1
2520 IF EXD(XUN)>0 THEN EX(XUN)=30
2530 IF EXD(XUN)<0 THEN EX(XUN)=151
2540 GOTO 2330
2550 HF=0
2560 FOR XUN=1 TO GUNS
2570 IF GUNY(XUN)=0 AND HF=0 THEN GUNY(XUN)=GY:GUNX(XUN)=GX:HF=1
2580 NEXT XUN
2590 RETURN
2600 LINE 18,20,159,20,1
2610 LINE 18,0,18,79,1
2620 RETURN
2630 IF EZ(XUN)>1 THEN  GOTO 2660
2640 BOX EX-3,EY-1,EX+3,EY+1,0,1
2650 RETURN
2660 IF EZ(XUN)>2 THEN  GOTO 2690
2670 CIRCLE EX,EY,2,0,1
2680 RETURN
2690 BOX EX-3,EY-1,EX+3,EY+1,1,1
2700 RETURN
2710 GOSUB 2790
2720 X=X-XD
2730 GOTO 1320
2740 GOSUB 2790
2750 X=X+XD
2760 GOTO 1320
2770 BOX X-5,Y-1,X+5,Y+2,0,1
2780 RETURN
2790 BOX X-5,Y-1,X+5,Y+2,0,0
2800 RETURN
2810 FOR BXUN=0 TO 6
2820 CIRCLE X,Y,BXUN,0,1
2830 NEXT BXUN
2840 FOR BXUN=0 TO 6
2850 CIRCLE X,Y,BXUN,0,0
2860 NEXT BXUN
2870 L=L-1
2880 GOSUB 2600
2890 BOX 1,6,15,7,1,0
2900 FOR DRL=1 TO L
2910 BOX 1+DRL*3,6,1+DRL*3+1,7,1,1
2920 NEXT DRL
2930 IF L<=0 THEN  GOTO 2950
2940 RETURN
2950 FOR YS=0 TO 500:NEXT YS
2960 CLS
2970 LOCATE 2,4:PRINT "Mission Failed   "
2980 LOCATE 3,3:PRINT "****************  "
2990 FOR YS=0 TO 500:NEXT YS
3000 KZ$=INKEY$
3010 GOTO 240
3020 RETURN
