5 REM ** SOLO DOGFIGHT**BBC VERSION** CO NVERTED BY I.THOMAS FROM ORIGINAL BY R.ERSKIN E** 10 GOSUB670 20 GOSUB730 30 MODE1:VDU17,130,12,28,4,27,35,4,29,128; 192;19,1,6;0;19,2,4;0;17,129,12 40 GOSUB650 50 IFP(3)=Q(3) AND P(4)=Q(4) GOTO420 60 PRINTTAB(P(4),P(3))" " 70 IFP(1)<21 COLOUR2:PRINTTAB(P(2),P(1))CH R$(A+223):P(3)=P(1):P(4)=P(2) 80 IFP(3)=Q(3) AND P(4)=Q(4) GOTO420 90 PRINTTAB(Q(4),Q(3))" " 100 IFQ(1)<21 COLOUR0:PRINTTAB(Q(2),Q(1))CH R$(AA+231):Q(3)=Q(1):Q(4)=Q(2) 110 IFINKEY(-102) AND G=1 F=1 120 IF RND(1)>.5 AND G=-1 AND ABS(P(1)-Q(1) )<7 AND ABS(P(2)-Q(2))<7 F=2 130 IFINKEY(-66) AND G=1 A=A+1:IF A=9 A=1 140 IF RND(1)>.9 AA=AA+1:IFAA=9 AA=1 150 IFINKEY(-98) AND G=1 A=A-1:IFA=0 A=8 160 IFRND(1)>.9 AA=AA-1:IFAA=0 AA=8 170 IFF>0 GOSUB300 180 P(1)=P(1)+D(A):P(2)=P(2)+D(A+8) 190 Q(1)=Q(1)+E(AA):Q(2)=Q(2)+E(AA+8) 200 IFP(1)>20 P(1)=0 210 IFQ(1)>20 Q(1)=0 220 IFP(1)<0 P(1)=20 230 IFQ(1)<0 Q(1)=20 240 IFP(2)>31 P(2)=0 250 IFP(2)<0 P(2)=31 260 IFQ(2)>31 Q(2)=0 270 IFQ(2)<0 Q(2)=31 280 G=-G 290 GOTO50 300 IFF=1 X=FNA(P(2)):Y=-FNB(P(1)) 310 IFF=2 X=FNA(Q(2)):Y=-FNB(Q(1)) 320 IFF=1 XX=F(A):YY=F(A+8) 330 IFF=2 XX=G(AA):YY=G(AA+8) 340 CNT=0 350 IFX>247 OR X<8 OR Y<8 OR Y>175 GOTO410 360 IF(F=1 AND POINT(X*4,Y*4)=0)OR(F=2 AND POINT(X*4,Y*4)=2) GOTO500 370 IFCNT>0 GCOL0,0:PLOT69,X*4,Y*4 380 CNT=CNT+1 390 IFCNT>1 GCOL0,1:PLOT69,X*4,Y*4:X=X+XX:Y =Y+YY 400 IFCNT<6 GOTO350 410 F=0:RETURN 420 COLOUR3:PRINTTAB(P(4),P(3))"*" 430 LIVES=LIVES-1:LIVES2=LIVES2-1 440 FORI=1TO10:SOUND0,-15,4+(I)MOD3,1:NEXT 450 IFLIVES=0 OR LIVES2=0 GOTO600 460 PRINTTAB(P(4),P(3))" " 470 A=1:AA=1:P(1)=20:P(2)=0:Q(1)=20:Q(2)=31 :P(3)=P(1):P(4)=P(2):Q(3)=Q(1):Q(4)=Q(2) 480 GOSUB650 490 GOTO50 500 COLOUR3 510 IFF=1 PRINTTAB(Q(2),Q(1))"*" 520 IFF=2 PRINTTAB(P(2),P(1))"*" 530 FORI=1TO10:SOUND0,-15,4+(I)MOD3,1:NEXT 540 IFF=1 LIVES2=LIVES2-1:IFLIVES2=0 GOTO60 0 550 IFF=2 LIVES=LIVES-1:IFLIVES=0 GOTO600 560 IFF=1 Q(1)=20:Q(2)=31:AA=1 570 IFF=2 P(1)=20:P(2)=31:A=1 580 GOSUB650 590 GOTO410 600 COLOUR0:IFLIVES=0 AND LIVES2=0 PRINTTAB (0,22)"The result is a draw." 610 IFLIVES=0 AND LIVES2>0 PRINTTAB(0,22)"T he computer wins." 620 IFLIVES>0 AND LIVES2=0 PRINTTAB(0,22)"Y ou are the winner." 630 PRINTTAB(0,23)"Press SPACE to replay."; 640 REPEATUNTILINKEY(-99):RUN 650 PRINTTAB(0,21)"PLYR lives: ";LIVES;" COMP. lives: ";LIVES2; 660 RETURN 670 MODE7:PRINTCHR$141;CHR$&86;SPC(10)"Solo -Dogfight"'CHR$141;CHR$&86;SPC(10)"Solo-Dogfi ght" 680 PRINT''''CHR$&83"Player controls:"''CHR $&85" A...Up"'CHR$&85" Z...Down"'CHR$&85" M...Fire" 690 PRINT''CHR$&82"The player controls the blue aircraft"'CHR$&82"and the computer contr ols the black." 700 PRINTTAB(7,22)CHR$&81;CHR$136"Press SPA CE to play." 710 REPEATUNTILGET=32 720 RETURN 730 DIMP(4),Q(4),G$(2),D(16),E(16) 740 G=1 750 P(1)=20:Q(1)=20:Q(2)=31:P(3)=20:Q(3)=20 :Q(4)=20 760 A=1:AA=1 770 RESTORE:FORX=1TO16 780 READD(X),E(X) 790 NEXT 800 DATA0,0,-1,-1,-1,-1,-1,-1,0,0,1,1,1,1,1 ,1 810 DATA1,-1,1,-1,0,0,-1,1,-1,1,-1,1,0,0,1, -1 820 F=0 830 G$(1)=CHR$(223+A):G$(2)=CHR$(231+A) 840 FORI=224TO239:VDU23,I:FORX=0TO7:READN:V DUN:NEXT, 850 DATA0,15,132,255,0,15,0,0 860 DATA8,26,52,9,18,164,64,0 870 DATA84,84,116,84,16,16,16,48 880 DATA16,72,36,208,72,36,2,4 890 DATA0,240,0,255,33,240,0,0 900 DATA0,2,37,72,144,36,88,16 910 DATA12,8,8,8,42,46,42,42 920 DATA32,64,36,18,11,36,18,8 930 DATA0,240,33,255,0,240,0,0 940 DATA16,88,164,144,72,37,2,0 950 DATA42,42,46,42,8,8,8,8 960 DATA8,18,36,11,18,36,64,32 970 DATA0,0,15,0,255,132,15,0 980 DATA0,64,164,18,5,36,26,0 990 DATA48,16,16,16,84,116,84,84 1000 DATA4,2,36,72,208,36,72,16 1010 LIVES=3:LIVES2=3 1020 DEFFNA(X)=X*8+4 1030 DEFFNB(X)=X*8-172 1040 DIMF(16),G(16) 1050 FORX=1TO16:READF(X):NEXT 1060 DATA8,8,0,-8,-8,-8,0,8,0,8,8,8,0,-8,- 8,-8 1070 FORX=1TO16:READG(X):NEXT 1080 DATA-8,-8,0,8,8,8,0,-8,0,8,8,8,0,-8,- 8,-8 1090 RETURN 1100 DEFFNAT(X,Y) 1110 A%=135:A%=USR&FFF4 AND&FFFF 1120 =A% DIV256