This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page,
please contact me immediatelly so I can remove it!
Entry name:
High Seas
|
Publisher/Developer:
ANALOG Computing, BELLCOM - Public Domain Library |
|
|
-
Entry name:High Seas
-
Category:Games
-
Publisher/Developer:ANALOG Computing, BELLCOM - Public Domain Library
Listing 1
0GOSUB10000 1DIMNAM$(20):GRAPHICS0:?:?:?:?:?:POKE752,1:?"ENTERYOURNAME";:INPUTNAM$ 2POKE712,136:POKE709,12 3FORSS=15TO0STEP-0.2:SOUND0,121,10,SS:NEXTSS 10REM***************************** 20REM** 30REM*HIGHSEASBYTOMHUDSON* 40REM*A.N.A.L.O.G.COMPUTING* 50REM** 60REM***************************** 70READC0,C1,C2,C3,C4,C5,C9,C10:DATA0,1,2,3,4,5,9,10 80POKE82,C0:REM***LEFTMARGIN*** 90DIMCG0(C9,C9),CG1$(100),HG0(C9,C9),HG1$(100),SL0(C5,C5),SL1(C5,C5),SD(C5,C1) 100DIMSN$(50),SH$(C3),S1$(C3),S2$(C3),S$(C3),B$(C3),W$(C5),W2$(C5) 110DIMHA(C9,C9),D(C4),P$(C1):D(C1)=C1:D(C2)=C2:D(C3)=C3:D(C4)=C4 120FORX=C0TOC9:FORY=C0TOC9:CG0(X,Y)=C0:HG0(X,Y)=C0:HA(X,Y)=C0:NEXTY:NEXTX 130FORX=C0TOC5:FORY=C0TOC5:SL0(X,Y)=C0:SL1(X,Y)=C0:NEXTY:SD(X,C0)=C0:SD(X,C1)=C0:NEXTX 140CG1$="":CG1$(100)="":CG1$(2)=CG1$:HG1$=CG1$ 150SN$="DESTROYERSUBMARINECRUISERBATTLESHIPA-CARRIER":IFRND(C0)<0.5THENT=0.5 160?"":?"" 170LTR=193:FORY=C2TO11:POSITIONC5,Y:?"";CHR$(LTR);"" 180POSITION21,Y:?"";CHR$(LTR);"":LTR=LTR+C1:NEXTY 190POSITIONC5,12:?"":POSITION21,12:?"" 200GOSUB2120 210GOSUB2130:?"I'MSETTINGUPMYFLEET.":GOSUB2270:GOSUB2120 220GOSUB2130:?"IT'STIMETOSETUPYOURSHIPS.":GOSUB2160 230SIX=C1:SL=C2:SV=C1:GOSUB520:SIX=11:SL=C3:SV=C2:GOSUB520:SIX=21:SL=C3:SV=C3:GOSUB520 240SIX=31:SL=C4:SV=C4:GOSUB520:SIX=41:SL=C5:SV=C5:GOSUB520 250GOSUB2120:?:IFRND(0)<0.5THEN?"IWILLGOFIRST.":GOSUB2160:GOSUB2120:GOTO730 260?"YOUGOFIRST!":GOSUB2160:GOSUB2120 270REM***HUMAN'STURN*** 272GOSUB2120:?NAM$ 273?"E";:GOSUB501:?"N";:GOSUB501:?"T";:GOSUB501:?"E";:GOSUB501:?"R"; 274GOSUB501:?"Y";:GOSUB501:?"O";:GOSUB501:?"U";:GOSUB501:?"R"; 275GOSUB501:?"S";:GOSUB501:?"H";:GOSUB501:?"O";:GOSUB501:?"T";:GOSUB501 276INPUTSH$:IFLEN(SH$)<>C2THEN510 281QQ=QQ+1 282?"SHOTS=";QQ 290S1$=SH$:GOSUB2510:IFBX<C0ORBX>C9ORBY<C0ORBY>C9THEN510 300CIX=BX+BY*C10+C1:IFCG1$(CIX,CIX)<>""THENGOSUB2140:?"OOPS-TRYAGAIN!":GOSUB2160:GOTO270 310CG1$(CIX,CIX)="2" 320IFCG0(BX,BY)>C0THENS$="":SD(CG0(BX,BY),C1)=SD(CG0(BX,BY),C1)+C1:HD=SD(CG0(BX,BY),C1):GOTO350 330S$="":GOSUB500:GOSUB2140:?"YOURSHOTMISSES!":GOSUB5000:GOSUB2160 340CG1$(CIX,CIX)="1":GOTO730 350GOSUB500:GOSUB2140:?"IT'SAHIT!!!":GOSUB6000:ONCG0(BX,BY)GOTO370,390,410,430,450 360STOP 370IFHD=C2THENSM=C1:GOTO470 380GOTO730 390IFHD=C3THENSM=C2:GOTO470 400GOTO730 410IFHD=C3THENSM=C3:GOTO470 420GOTO730 430IFHD=C4THENSM=C4:GOTO470 440GOTO730 450IFHD<C5THEN730 460SM=C5 470POSITIONC0,19:?"YOUSUNKMY";SN$((SM-C1)*C10+C1,SM*C10);"!!!":GOSUB7000 480XS=XS+C1:IFXS=C5THEN2190 490GOTO730 500POSITION8+BY,C2+BX:?S$:RETURN 501SOUND0,0,2,14:SOUND0,0,0,0:FORW=1TO10:NEXTW:RETURN 510GOSUB2140:?"INCORRECTINPUT!":GOSUB2160:GOTO270 520REM***HUMANSET-UP*** 530GOSUB2120 540?"SHIP:";SN$(SIX,SIX+C9);"---LENGTH:";SL;"" 550?:?"BOWCOORDINATE(EG.B4)-";:INPUTB$ 560?"STERNCOORDINATE-";:INPUTS$ 570IFLEN(B$)<>C2ORLEN(S$)<>C2THEN690 580S1$=B$:S2$=S$:GOSUB2510 590IFBY<C0ORBY>C9ORSY<C0ORSY>C9THEN690 600IFBX<C0ORBX>C9ORSX<C0ORSX>C9THEN690 610XI=SGN(BX-SX):YI=SGN(BY-SY):IFABS(XI-YI)<>C1THEN700 620IFABS(BX-SX)+ABS(BY-SY)<>(SL-C1)THENGOSUB2150:?"SHIPWON'TFIT!":GOTO720 630H1=SX:H2=SY 640H1=H1-XI:H2=H2-YI 650FORW2=C1TOSL:H1=H1+XI:H2=H2+YI:IFHG0(H2,H1)>C0THEN710 660NEXTW2:H1=SX-XI:H2=SY-YI 670FORW2=C1TOSL:H1=H1+XI:H2=H2+YI:POSITION24+H2,2+H1:?SN$(SIX,SIX):SL0(SV,W2)=H2:SL1(SV,W2)=H1 680HG0(H2,H1)=SV:NEXTW2:RETURN 690GOSUB2150:?"INCORRECTINPUT!":GOTO720 700GOSUB2150:?"NODIAGONALS!":GOTO720 710GOSUB2150:?"SHIPOVERLAPSANOTHER!" 720GOSUB2160:GOTO520 730REM***COMPUTER'STURN*** 740IFSD(C5,C0)<C5THENOS=C5:GOTO780 750IFSD(C4,C0)<C4THENOS=C4:GOTO780 760IFSD(C3,C0)<C3ORSD(C2,C0)<C3THENOS=C3:GOTO780 770OS=C2 780IFSD(C1,C0)<C2THENLS=C2:GOTO820 790IFSD(C2,C0)<C3ORSD(C3,C0)<C3THENLS=C3:GOTO820 800IFSD(C4,C0)<C4THENLS=C4:GOTO820 810LS=C5 820IFHP>C0THEN1580:REM***SRCHFORNEXTHIT*** 830IFS>75THEN960:REM***SYSTEMATIC*** 840GS=C0:N=C0 850N=N+C1:IFN>C10THEN900 860GOSUB1080:IFHG1$(HIX,HIX)<>""THEN850 870GOSUB1140:IFBH>C0ANDRND(C1)<0.8THEN850 880GOSUB1050:IFGS=C1THEN1320 890GOTO850 900GS=C0:N=C0 910N=N+C1:IFN>75THEN960 920GOSUB1080:IFHG1$(HIX,HIX)<>""THEN910 930GOSUB1140:IFBH>C0ANDRND(C1)<0.8THEN910 940GOSUB1020:IFGS=C1THEN1320 950GOTO910 960FORX=C0TOC9:FORY=C0TOC9:GOSUB1090:IFHG1$(HIX,HIX)<>""THEN980 970GS=C0:GOSUB1050:IFGS=C1THEN1320 980NEXTY:NEXTX 990FORX=C0TOC9:FORY=C0TOC9:GOSUB1090:IFHG1$(HIX,HIX)<>""THEN1010 1000GS=C0:GOSUB1020:IFGS=C1THEN1320 1010NEXTY:NEXTX:STOP 1020GOSUB1100:GOSUB1120:IFXT>=OSTHEN1040 1030GOSUB1130:IFYT<OSTHENRETURN 1040GS=C1:RETURN 1050GOSUB1100:GOSUB1120:IFXT<OSTHENRETURN 1060GOSUB1130:IFYT<OSTHENRETURN 1070GS=C1:RETURN 1080X=INT(RND(C0)*C10):Y=INT(RND(C0)*C10) 1090HIX=X+Y*C10+C1:RETURN 1100OE=(X+Y)/C2:IFOE-INT(OE)<>TTHENPOP 1110RETURN 1120XI=C1:YI=C0:GOSUB1170:XT=DT:XI=-C1:YI=C0:GOSUB1170:XT=XT+DT+C1:RETURN 1130XI=C0:YI=C1:GOSUB1170:YT=DT:XI=C0:YI=-C1:GOSUB1170:YT=YT+DT+C1:RETURN 1140BH=C0:FORIX=X-C1TOX+C1:FORIY=Y-C1TOY+C1:IFIX<C0ORIX>C9ORIY<C0ORIY>C9THEN1160 1150HIX=IX+IY*C10+C1:IFHG1$(HIX,HIX)="2"THENBH=BH+C1 1160NEXTIY:NEXTIX:RETURN 1170DT=C0:WX=X:WY=Y 1180WX=WX+XI:WY=WY+YI:IFWX<C0ORWX>C9ORWY<C0ORWY>C9THENRETURN 1190IFHA(WX,WY)THENRETURN 1200DT=DT+C1:GOTO1180 1210FORP1=C1TOHD:HA(SL0(SM,P1),SL1(SM,P1))=C1:HP=HP-C1:NEXTP1:RETURN 1220D1=C0:D2=C0 1230DS=C0:XI=C1:YI=C0:GOSUB1280:T1=DS:DS=C0:XI=-C1:YI=C0:GOSUB1280:T1=T1+DS 1240DS=C0:XI=C0:YI=C1:GOSUB1280:T2=DS:DS=C0:XI=C0:YI=-C1:GOSUB1280:T2=T2+DS 1250IFT1>=LSTHEND1=C1 1260IFT2>=LSTHEND2=C1 1270RETURN 1280VX=GX:VY=GY:DS=C1 1290VX=VX+XI:VY=VY+YI:IFVX>C9ORVY>C9ORVX<C0ORVY<C0THENRETURN 1300IFHA(VX,VY)=C1THENRETURN 1310DS=DS+C1:GOTO1290 1320W$=STR$(Y):W$(C1)=CHR$(ASC(W$(LEN(W$)))+17):W2$=STR$(X):W$(2)=W2$(LEN(W2$)) 1330S$="":HA(X,Y)=C1:IFHG0(X,Y)=C0THEN1350 1340S$="":SD(HG0(X,Y),C0)=SD(HG0(X,Y),C0)+C1 1350GOSUB1090:HG1$(HIX,HIX)="1":S=S+C1 1360GOSUB2120:?"MYSHOTIS";W$ 1370POSITION24+X,C2+Y:?S$ 1380IFS$=""THENGOSUB2140:?"IT'SAMISS!":GOSUB5000:GOSUB2160:GOTO270 1390GOSUB2140:?"IT'SAHIT!":GOSUB6000:HW=C1 1400GOSUB1090:HG1$(HIX,HIX)="2" 1410HA(X,Y)=C2:HP=HP+C1 1420Q1=X:Q2=Y:HD=SD(HG0(X,Y),C0):ONHG0(X,Y)GOTO1430,1450,1470,1490,1510:STOP 1430IFHD=C2THENSM=C1:GOTO1530 1440GOTO270 1450IFHD=C3THENSM=C2:GOTO1530 1460GOTO270 1470IFHD=C3THENSM=C3:GOTO1530 1480GOTO270 1490IFHD=C4THENSM=C4:GOTO1530 1500GOTO270 1510IFHD<C5THEN270 1520SM=C5 1530POSITIONC0,19:?"YOUR";SN$((SM-C1)*C10+C1,SM*C10);"HASBEENSUNK!" 1540GOSUB7000:GOSUB1210 1550REM***ONEMORECOMPUTER-SINK*** 1560YS=YS+C1:IFYS=C5THEN2190 1570HW=C0:GOTO270 1580REM***SINKSHIPSUBROUTINE*** 1590E1=C0:E2=C9:E3=C1:IFRND(C1)>0.5THENE1=C9:E2=C0:E3=-C1 1600FORFX=E1TOE2STEPE3:FORFY=E1TOE2STEPE3 1610IFHA(FX,FY)<C2THEN1760 1620IFHP=C1THEN1980:REM***RANDOMDIRSHOT*** 1630GX=FX:GY=FY:GOSUB1220 1640IFD1<>C1THEN1700 1650LE=C9:RI=C9 1660IFFX>C0THENLE=HA(FX-C1,FY) 1670IFFX<C9THENRI=HA(FX+C1,FY) 1680IFLE=C0ANDRI=C2THENX=FX-C1:Y=FY:GOTO1320 1690IFLE=C2ANDRI=C0THENX=FX+C1:Y=FY:GOTO1320 1700IFD2<>C1THEN1760 1710UP=C9:DN=C9 1720IFFY>C0THENUP=HA(FX,FY-C1) 1730IFFY<C9THENDN=HA(FX,FY+C1) 1740IFUP=C0ANDDN=C2THENX=FX:Y=FY-C1:GOTO1320 1750IFUP=C2ANDDN=C0THENX=FX:Y=FY+C1:GOTO1320 1760NEXTFY:NEXTFX:REM***NOWYOUKNOWTHEREAREPARALLELSHIPS*** 1770FORFX=C0TOC9:FORFY=C0TOC9 1780IFHA(FX,FY)<C2THENNEXTFY:NEXTFX:STOP 1790GX=FX:GY=FY:GOSUB1220 1800IFD1<>C1THEN1850 1810LE=C9:RI=C9:DR=C1 1820IFFX>C0THENLE=HA(FX-C1,FY) 1830IFFX<C9THENRI=HA(FX+C1,FY) 1840IFLE=C0ORRI=C0THEN1910 1850IFD2<>C1THEN1900 1860UP=C9:RI=C9:DR=C2 1870IFFY>C0THENUP=HA(FX,FY-C1) 1880IFFY<C9THENDN=HA(FX,FY+C1) 1890IFUP=C0ORDN=C0THEN1910 1900NEXTFY:NEXTFX:STOP 1910IFDR=C2THEN1950 1920XD=-C1+INT(RND(C0)*C3):IFXD=C0THEN1920 1930IFHA(FX+XD,FY)THENXD=-XD 1940X=FX+XD:Y=FY:GOTO1320 1950YD=-C1+INT(RND(C0)*C3):IFYD=C0THEN1950 1960IFHA(FX,FY+YD)THENYD=-YD 1970X=FX:Y=FY+YD:GOTO1320 1980FORX=C1TO20:U1=C1+INT(RND(C0)*C4):U2=C1+INT(RND(C0)*C4):U3=D(U1):D(U1)=D(U2):D(U2)=U3:NEXTX 1990FORDP=C1TOC4:OND(DP)GOTO2000,2020,2040,2060:STOP 2000XI=C1:YI=C0:X=FX:Y=FY:GOSUB1170:XD=DT:XI=-C1:YI=C0:GOSUB1170:XD=XD+DT+C1:IFXD<LSTHEN2100 2010GOTO2070 2020XI=-C1:YI=C0:X=FX:Y=FY:GOSUB1170:XD=DT:XI=C1:YI=C0:GOSUB1170:XD=XD+DT+C1:IFXD<LSTHEN2100 2030GOTO2070 2040XI=C0:YI=-C1:X=FX:Y=FY:GOSUB1170:XD=DT:XI=C0:YI=C1:GOSUB1170:XD=XD+DT+C1:IFXD<LSTHEN2100 2050GOTO2070 2060XI=C0:YI=C1:X=FX:Y=FY:GOSUB1170:XD=DT:XI=C0:YI=-C1:GOSUB1170:XD=XD+DT+C1:IFXD<LSTHEN2100 2070KX=FX+XI:KY=FY+YI:IFKX<C0ORKX>9ORKY<C0ORKY>9THENNEXTDP:STOP 2080IFHA(KX,KY)THENNEXTDP:STOP 2090X=KX:Y=KY:GOTO1320 2100NEXTDP:STOP 2110REM***SCREENSUBROUTINES*** 2120GOSUB2130:?"":GOSUB2130:RETURN 2130POSITIONC0,15:RETURN 2140POSITIONC0,17:RETURN 2150POSITIONC0,20:RETURN 2160REM***TIMEDELAYROUTINE*** 2170FORDT=C1TO100:NEXTDT:RETURN 2180REM***END-OF-GAMECODE*** 2190IFYS=C5THENGOSUB2560 2200GOSUB2160:GOSUB2120:GOSUB2130:IFYS=C5THEN2220 2210?"YOUWIN!!";:?"SHOTS=";QQ:GOSUB9000:GOTO2230 2220?"IWIN!!":GOSUB9000 2230GOSUB2140:?"ANOTHERGAME(/)";:INPUTW$ 2240IFW$="N"THENEND 2250IFW$<>"Y"THENGOSUB2140:?"":GOTO2230 2260RESTORE70:CLR:GOTO1 2270REM***SETCOMPUTER'SSHIPS*** 2280SV=C1:SL=C2:GOSUB2300:SV=C2:SL=C3:GOSUB2300:SV=C3:SL=C3:GOSUB2300:SV=C4:SL=C4:GOSUB2300 2290SV=C5:SL=C5:GOSUB2300:RETURN 2300WX=INT(RND(C0)*C10):WY=INT(RND(C0)*C10):D=INT(RND(C0)*C4) 2310OND+C1GOTO2320,2340,2360,2380:STOP 2320IFWY<SLTHEN2300 2330B1=C1:B2=C0:XI=C0:YI=-C1:GOTO2400 2340IF(C10-WX)<SLTHEN2300 2350B1=C0:B2=C1:XI=C1:YI=C0:GOTO2400 2360IF(C10-WY)<SLTHEN2300 2370B1=C1:B2=C0:XI=C0:YI=C1:GOTO2400 2380IFWX<SLTHEN2300 2390B1=C0:B2=C1:XI=-C1:YI=C0 2400HX=WX:HY=WY:IFCG0(WX,WY)THEN2300 2410Z1=HX+B1:Z2=HY+B2:IFZ1<C10ANDZ2<C10THENIFCG0(Z1,Z2)ANDRND(1)<0.9500000000000001THEN2300 2420Z1=HX-B1:Z2=HY-B2:IFZ1>-C1ANDZ2>-C1THENIFCG0(Z1,Z2)ANDRND(C1)<0.9500000000000001THEN2300 2430FORWC=C1TO(SL-C1):HX=HX+XI:HY=HY+YI:IFCG0(HX,HY)THEN2300 2440Z1=HX+B1:Z2=HY+B2:IFZ1<C10ANDZ2<C10THENIFCG0(Z1,Z2)ANDRND(C1)<0.9500000000000001THEN2300 2450Z1=HX-B1:Z2=HY-B2:IFZ1>-C1ANDZ2>-C1THENIFCG0(Z1,Z2)ANDRND(C1)<0.9500000000000001THEN2300 2460NEXTWC 2470HX=HX+XI:HY=HY+YI:IFHX<C0ORHX>C9ORHY<C0ORHY>C9THEN2490 2480IFCG0(HX,HY)ANDRND(C1)<0.9500000000000001THEN2300 2490HX=WX:HY=WY:CG0(HX,HY)=SV 2500FORWC=C1TO(SL-C1):HX=HX+XI:HY=HY+YI:CG0(HX,HY)=SV:NEXTWC:RETURN 2510REM***DECODEGRIDINPUT*** 2520BX=ASC(S1$(C1,C1))-65:BY=ASC(S1$(LEN(S1$)))-48 2530SX=ASC(S2$(C1,C1))-65:SY=ASC(S2$(LEN(S2$)))-48 2540RETURN 2550REM***SHOWCOMPUTER'SLAYOUTATEND*** 2560FORX=C0TOC9:FORY=C0TOC9:WV=CG0(X,Y):POSITION8+Y,C2+X:IFWV=C0THEN?"":GOTO2580 2570?CHR$(ASC(SN$((WV-C1)*C10+C1,(WV-C1)*C10+C1))+128) 2580NEXTY:NEXTX:RETURN 5000FORSS=15TO0STEP-0.2:SOUND0,2,0,SS:NEXTSS:RETURN 6000FORSS=15TO0STEP-0.2:SOUND0,35,0,SS:POKE712,INT(14*RND(0)+48):NEXTSS:POKE712,136:RETURN 7000FORSS=15TO0STEP-0.1:SOUND0,100,0,SS:NEXTSS:FORSS=1TO70:POKE710,SS:NEXTSS:POKE710,148:RETURN 8999FORSS=1TO90:SOUND0,SS,10,2:SOUND1,0,0,4:NEXTSS 9000FORSS=0TO248:POKE710,SS:POKE710,148:SOUND0,SS,0,10 9001IFSS>20THENSOUND1,SS-16,0,10 9002IFSS>60THENSOUND2,SS-56,0,10 9003NEXTSS 9004FORPP=0TO2:SOUNDPP,0,0,0:NEXTPP:RETURN 10000GRAPHICS1:POSITION7,6:?#6;"HIseas" 10005SETCOLOR2,0,0:POKE752,1 10010?"ModifiedByHUX" 10100FORW=1TO600:NEXTW:GOSUB8999:RETURN
References
Listing downloads
Downloads
Copyright holder
