8-Bit Software Online Conversion

:0.$.SHIP - Listing

10VDU26,12,20,23,1,0;0;0;0; 15LOMEM=TOP+500 20T1=X%*256+Y%:T2=A%*256+B% 30DIM P1 100,P2 100 40DIM x%(2),y%(2),f%(2),h%(2) 50x%(1)=1:x%(2)=3:y%(1)=2:y%(2)=4 60f%(1)=1:f%(2)=2:h%(1)=0:h%(2)=0 70FORI%=0TO99:P1?I%=T1?I%:P2?I%=T2?I% :NEXT 100P%=1:Z%=2:joy%=J%:GCOL3,3 110PROCGRID:PROCLABEL 120GCOL3,3 130VDU29,640;0;:PROCGRID:PROCLABEL 140VDU4,17,3,28,0,12,39,0 150IFP%=1VDU29,0;0; ELSE VDU29,640;0; 160VDU23,1,0;0;0;0; 170IFjoy%=1GOTO280 180CLS:PRINT''"Player ";P%;", please t ype the grid"''"letters of your shot."'' "X is ?"; 190REPEAT:X$=GET$:UNTIL X$<"K" AND X$> "@":PRINTX$''"Y is ?"; 200REPEAT:Y$=GET$:UNTIL Y$<"K" AND Y$> "@":PRINTY$ 210CLS:PRINT''"Player ";P%;", you have entered grid"''"letters ";X$;",";Y$;" f or your shot."''"If this is correct plea se press RETURN"''"otherwise press TAB." 220REPEAT:V$=GET$:UNTILV$=CHR$13 OR V$ =CHR$9 230IF V$=CHR$9 THEN GOTO 180 240q%=ASC(X$)-65:r%=ASC(Y$)-65 250fsqr=FNSQR(Z%,q%,r%) 260IF fsqr>1 VDU7:GOTO 180 270GOTO390 280CLS:PRINT''"Player ";P%;", please f ire your shot using"''"joystick number " ;P%;"." 290JX=1024-ADVAL(x%(P%))/64 300JY=ADVAL(y%(P%))/64 310PROCCRSR 320A%=ADVAL(0)AND3 330IF A%<>f%(P%) OSCLI("FX19"): PROCCRSR:GOTO290 340q%=JX/48:r%=JY/48 350IF q%<0 OR q%>9 OR r%<0 OR r%>9 OSCLI("FX19"):PROCCRSR:SOUND1,-5,20 0,5:GOTO290 360fsqr=FNSQR(Z%,q%,r%) 370IF fsqr>1 VDU7:PROCCRSR:GOTO290 380PROCCRSR 390GCOL3,1:PROCFL`SQ(q%,r%) 400FORI%=200TO150STEP-4 410SOUND1,-15,I%,1:NEXT 420IF fsqr=1 PROCHIT(Z%,q%,r%) 430IF fsqr=0 PROCSET(Z%,q%,r%,128): PROCFL`SQ(q%,r%):PROCFL`SQ(q%,r%) 440IF h%(P%)<16 THEN 450 ELSE 490 450IF P%=1 P%=2 ELSE P%=1 460IF Z%=1 Z%=2 ELSE Z%=1 470CLS:COLOUR3 480GOTO150 490PROCWINNER 500CALL !-4 510END 520REM CONTROL SHOULD NEVER COME HERE 530DEFPROCHIT(Z%,q%,r%):GCOL3,1 540PROCFL`SQ(q%,r%):GCOL3,2 550PROCFL`SQ(q%,r%) 560REPEAT:UNTIL ADVAL(-6)>0 570SOUND0,-15,100,10 580REPEAT:UNTIL ADVAL(-6)>0 590PROCSET(Z%,q%,r%,255) 600h%(P%)=h%(P%)+1 610ENDPROC 620END 630DEFFNSQR(J%,X%,Y%) 640IF J%=1 =?(P1+(Y%*10)+X%) ELSE =?(P2+(Y%*10)+X%) 650DEFPROCWIPE 660LOCAL I:FORI=0 TO 99 670P1?I=0:P2?I=0:NEXT:ENDPROC 680DEFPROCSET(J,X,Y,I) 690IF J=1 ?(P1+(Y*10)+X)=I 700IF J=2 ?(P2+(Y*10)+X)=I 710ENDPROC 720DEFPROCGRID:LOCAL I 730FOR I=0 TO 480 STEP 48 740MOVE 0,I:DRAW 480,I 750MOVE I,0:DRAW I,480:NEXT 760ENDPROC 770DEFPROCFL`SQ(X%,Y%) 780LOCAL X1%,Y1%,I% 790X1%=X%*48:Y1%=Y%*48 800FORI%=X1%+4 TO X1%+44 STEP 4:MOVE I %,Y1%+4:DRAW I%,Y1%+44:NEXT:ENDPROC 810DEFPROCLABEL 820LOCAL I:GCOL0,1:VDU5 830FORI=0 TO 9*48 STEP 48 840MOVEI,528:PRINTCHR$((I/48)+65) 850MOVE496,I+32:PRINTCHR$((I/48)+65) 860NEXT:ENDPROC 870DEFPROCCRSR:GCOL3,2 880IFJX<0JX=0 890IFJY<0JY=0 900IFJX>48*19 JX=48*19 910IFJY>48*19 JY=48*19 920MOVEJX-48,JY:DRAWJX+48,JY:MOVEJX,JY -48:DRAWJX,JY+48:ENDPROC 930DEFPROCWINNER 940CLS:PRINT 950PRINT"The Winner is Admiral Player ";P%;"." 960PRINT'"Congratulations on your exce llent" 970rnd%=RND(5) 980ON rnd% GOTO 990,1000,1010,1020,104 0 990PRINT'"strategy.":GOTO 1060 1000PRINT'"gameplay.":GOTO 1060 1010PRINT'"foresight.":GOTO 1060 1020PRINT'"tatics.":GOTO 1060 1030PRINT'"strategy.":GOTO1050 1040PRINT'"LUCK!!" 1050pause=INKEY(200) 1060PROCov:PROCov:PROCov 1070pause%=INKEY(200) 1080PRINT'"Would you like to play anoth er game ?"; 1090A%=5 1100REPEAT:A$=INKEY$(0) 1110A%=A%+4:SOUND1,-5,A%,1 1120IFA%=253 A%=5 1130UNTIL A$="Y" OR A$="N" 1140IF A$="Y" CHAIN "BATTLE" 1150CLS:PRINT'"Goodbye, thank you for p laying the game"''"of ..... BATTLESHIPS! !" 1160PAUSE=INKEY(500) 1170ENDPROC 1180DEFPROCov:ENVELOPE1,3,0,0,0,1,1,1,1 26,-4,0,-4,126,80:Q%=0:R%=0:FORN%=0TO60S TEP4:P%=48+(N%+(N%MOD12=8))MOD16*4:SOUND 1,1,P%,5:SOUND2,1,Q%,5:SOUND3,1,R%,5:R%= Q%:Q%=P%:NEXT:XA%=TIME:REPEATUNTILTIME-X A%>150:ENDPROC