Random game
Random software
Random game
Entry name:
 High Seas 
Publisher/Developer:

ANALOG Computing,
BELLCOM - Public Domain Library
  • Category:

    Games
  • Code:

    Tom Hudson
  • Maximum players:

    1
  • Programming language:

    Atari BASIC
High Seas High Seas High Seas
Listing 1
0GOSUB10000
1DIMNAM$(20):GRAPHICS0:?:?:?:?:?:POKE752,1:?"ENTERYOURNAME";:INPUTNAM$
2POKE712,136:POKE709,12
3FORSS=15TO0STEP-0.2:SOUND0,121,10,SS:NEXTSS
10REM*****************************
20REM**
30REM*HIGHSEASBYTOMHUDSON*
40REM*A.N.A.L.O.G.COMPUTING*
50REM**
60REM*****************************
70READC0,C1,C2,C3,C4,C5,C9,C10:DATA0,1,2,3,4,5,9,10
80POKE82,C0:REM***LEFTMARGIN***
90DIMCG0(C9,C9),CG1$(100),HG0(C9,C9),HG1$(100),SL0(C5,C5),SL1(C5,C5),SD(C5,C1)
100DIMSN$(50),SH$(C3),S1$(C3),S2$(C3),S$(C3),B$(C3),W$(C5),W2$(C5)
110DIMHA(C9,C9),D(C4),P$(C1):D(C1)=C1:D(C2)=C2:D(C3)=C3:D(C4)=C4
120FORX=C0TOC9:FORY=C0TOC9:CG0(X,Y)=C0:HG0(X,Y)=C0:HA(X,Y)=C0:NEXTY:NEXTX
130FORX=C0TOC5:FORY=C0TOC5:SL0(X,Y)=C0:SL1(X,Y)=C0:NEXTY:SD(X,C0)=C0:SD(X,C1)=C0:NEXTX
140CG1$="":CG1$(100)="":CG1$(2)=CG1$:HG1$=CG1$
150SN$="DESTROYERSUBMARINECRUISERBATTLESHIPA-CARRIER":IFRND(C0)<0.5THENT=0.5
160?"":?""
170LTR=193:FORY=C2TO11:POSITIONC5,Y:?"";CHR$(LTR);""
180POSITION21,Y:?"";CHR$(LTR);"":LTR=LTR+C1:NEXTY
190POSITIONC5,12:?"":POSITION21,12:?""
200GOSUB2120
210GOSUB2130:?"I'MSETTINGUPMYFLEET.":GOSUB2270:GOSUB2120
220GOSUB2130:?"IT'STIMETOSETUPYOURSHIPS.":GOSUB2160
230SIX=C1:SL=C2:SV=C1:GOSUB520:SIX=11:SL=C3:SV=C2:GOSUB520:SIX=21:SL=C3:SV=C3:GOSUB520
240SIX=31:SL=C4:SV=C4:GOSUB520:SIX=41:SL=C5:SV=C5:GOSUB520
250GOSUB2120:?:IFRND(0)<0.5THEN?"IWILLGOFIRST.":GOSUB2160:GOSUB2120:GOTO730
260?"YOUGOFIRST!":GOSUB2160:GOSUB2120
270REM***HUMAN'STURN***
272GOSUB2120:?NAM$
273?"E";:GOSUB501:?"N";:GOSUB501:?"T";:GOSUB501:?"E";:GOSUB501:?"R";
274GOSUB501:?"Y";:GOSUB501:?"O";:GOSUB501:?"U";:GOSUB501:?"R";
275GOSUB501:?"S";:GOSUB501:?"H";:GOSUB501:?"O";:GOSUB501:?"T";:GOSUB501
276INPUTSH$:IFLEN(SH$)<>C2THEN510
281QQ=QQ+1
282?"SHOTS=";QQ
290S1$=SH$:GOSUB2510:IFBX<C0ORBX>C9ORBY<C0ORBY>C9THEN510
300CIX=BX+BY*C10+C1:IFCG1$(CIX,CIX)<>""THENGOSUB2140:?"OOPS-TRYAGAIN!":GOSUB2160:GOTO270
310CG1$(CIX,CIX)="2"
320IFCG0(BX,BY)>C0THENS$="":SD(CG0(BX,BY),C1)=SD(CG0(BX,BY),C1)+C1:HD=SD(CG0(BX,BY),C1):GOTO350
330S$="":GOSUB500:GOSUB2140:?"YOURSHOTMISSES!":GOSUB5000:GOSUB2160
340CG1$(CIX,CIX)="1":GOTO730
350GOSUB500:GOSUB2140:?"IT'SAHIT!!!":GOSUB6000:ONCG0(BX,BY)GOTO370,390,410,430,450
360STOP
370IFHD=C2THENSM=C1:GOTO470
380GOTO730
390IFHD=C3THENSM=C2:GOTO470
400GOTO730
410IFHD=C3THENSM=C3:GOTO470
420GOTO730
430IFHD=C4THENSM=C4:GOTO470
440GOTO730
450IFHD<C5THEN730
460SM=C5
470POSITIONC0,19:?"YOUSUNKMY";SN$((SM-C1)*C10+C1,SM*C10);"!!!":GOSUB7000
480XS=XS+C1:IFXS=C5THEN2190
490GOTO730
500POSITION8+BY,C2+BX:?S$:RETURN
501SOUND0,0,2,14:SOUND0,0,0,0:FORW=1TO10:NEXTW:RETURN
510GOSUB2140:?"INCORRECTINPUT!":GOSUB2160:GOTO270
520REM***HUMANSET-UP***
530GOSUB2120
540?"SHIP:";SN$(SIX,SIX+C9);"---LENGTH:";SL;""
550?:?"BOWCOORDINATE(EG.B4)-";:INPUTB$
560?"STERNCOORDINATE-";:INPUTS$
570IFLEN(B$)<>C2ORLEN(S$)<>C2THEN690
580S1$=B$:S2$=S$:GOSUB2510
590IFBY<C0ORBY>C9ORSY<C0ORSY>C9THEN690
600IFBX<C0ORBX>C9ORSX<C0ORSX>C9THEN690
610XI=SGN(BX-SX):YI=SGN(BY-SY):IFABS(XI-YI)<>C1THEN700
620IFABS(BX-SX)+ABS(BY-SY)<>(SL-C1)THENGOSUB2150:?"SHIPWON'TFIT!":GOTO720
630H1=SX:H2=SY
640H1=H1-XI:H2=H2-YI
650FORW2=C1TOSL:H1=H1+XI:H2=H2+YI:IFHG0(H2,H1)>C0THEN710
660NEXTW2:H1=SX-XI:H2=SY-YI
670FORW2=C1TOSL:H1=H1+XI:H2=H2+YI:POSITION24+H2,2+H1:?SN$(SIX,SIX):SL0(SV,W2)=H2:SL1(SV,W2)=H1
680HG0(H2,H1)=SV:NEXTW2:RETURN
690GOSUB2150:?"INCORRECTINPUT!":GOTO720
700GOSUB2150:?"NODIAGONALS!":GOTO720
710GOSUB2150:?"SHIPOVERLAPSANOTHER!"
720GOSUB2160:GOTO520
730REM***COMPUTER'STURN***
740IFSD(C5,C0)<C5THENOS=C5:GOTO780
750IFSD(C4,C0)<C4THENOS=C4:GOTO780
760IFSD(C3,C0)<C3ORSD(C2,C0)<C3THENOS=C3:GOTO780
770OS=C2
780IFSD(C1,C0)<C2THENLS=C2:GOTO820
790IFSD(C2,C0)<C3ORSD(C3,C0)<C3THENLS=C3:GOTO820
800IFSD(C4,C0)<C4THENLS=C4:GOTO820
810LS=C5
820IFHP>C0THEN1580:REM***SRCHFORNEXTHIT***
830IFS>75THEN960:REM***SYSTEMATIC***
840GS=C0:N=C0
850N=N+C1:IFN>C10THEN900
860GOSUB1080:IFHG1$(HIX,HIX)<>""THEN850
870GOSUB1140:IFBH>C0ANDRND(C1)<0.8THEN850
880GOSUB1050:IFGS=C1THEN1320
890GOTO850
900GS=C0:N=C0
910N=N+C1:IFN>75THEN960
920GOSUB1080:IFHG1$(HIX,HIX)<>""THEN910
930GOSUB1140:IFBH>C0ANDRND(C1)<0.8THEN910
940GOSUB1020:IFGS=C1THEN1320
950GOTO910
960FORX=C0TOC9:FORY=C0TOC9:GOSUB1090:IFHG1$(HIX,HIX)<>""THEN980
970GS=C0:GOSUB1050:IFGS=C1THEN1320
980NEXTY:NEXTX
990FORX=C0TOC9:FORY=C0TOC9:GOSUB1090:IFHG1$(HIX,HIX)<>""THEN1010
1000GS=C0:GOSUB1020:IFGS=C1THEN1320
1010NEXTY:NEXTX:STOP
1020GOSUB1100:GOSUB1120:IFXT>=OSTHEN1040
1030GOSUB1130:IFYT<OSTHENRETURN
1040GS=C1:RETURN
1050GOSUB1100:GOSUB1120:IFXT<OSTHENRETURN
1060GOSUB1130:IFYT<OSTHENRETURN
1070GS=C1:RETURN
1080X=INT(RND(C0)*C10):Y=INT(RND(C0)*C10)
1090HIX=X+Y*C10+C1:RETURN
1100OE=(X+Y)/C2:IFOE-INT(OE)<>TTHENPOP
1110RETURN
1120XI=C1:YI=C0:GOSUB1170:XT=DT:XI=-C1:YI=C0:GOSUB1170:XT=XT+DT+C1:RETURN
1130XI=C0:YI=C1:GOSUB1170:YT=DT:XI=C0:YI=-C1:GOSUB1170:YT=YT+DT+C1:RETURN
1140BH=C0:FORIX=X-C1TOX+C1:FORIY=Y-C1TOY+C1:IFIX<C0ORIX>C9ORIY<C0ORIY>C9THEN1160
1150HIX=IX+IY*C10+C1:IFHG1$(HIX,HIX)="2"THENBH=BH+C1
1160NEXTIY:NEXTIX:RETURN
1170DT=C0:WX=X:WY=Y
1180WX=WX+XI:WY=WY+YI:IFWX<C0ORWX>C9ORWY<C0ORWY>C9THENRETURN
1190IFHA(WX,WY)THENRETURN
1200DT=DT+C1:GOTO1180
1210FORP1=C1TOHD:HA(SL0(SM,P1),SL1(SM,P1))=C1:HP=HP-C1:NEXTP1:RETURN
1220D1=C0:D2=C0
1230DS=C0:XI=C1:YI=C0:GOSUB1280:T1=DS:DS=C0:XI=-C1:YI=C0:GOSUB1280:T1=T1+DS
1240DS=C0:XI=C0:YI=C1:GOSUB1280:T2=DS:DS=C0:XI=C0:YI=-C1:GOSUB1280:T2=T2+DS
1250IFT1>=LSTHEND1=C1
1260IFT2>=LSTHEND2=C1
1270RETURN
1280VX=GX:VY=GY:DS=C1
1290VX=VX+XI:VY=VY+YI:IFVX>C9ORVY>C9ORVX<C0ORVY<C0THENRETURN
1300IFHA(VX,VY)=C1THENRETURN
1310DS=DS+C1:GOTO1290
1320W$=STR$(Y):W$(C1)=CHR$(ASC(W$(LEN(W$)))+17):W2$=STR$(X):W$(2)=W2$(LEN(W2$))
1330S$="":HA(X,Y)=C1:IFHG0(X,Y)=C0THEN1350
1340S$="":SD(HG0(X,Y),C0)=SD(HG0(X,Y),C0)+C1
1350GOSUB1090:HG1$(HIX,HIX)="1":S=S+C1
1360GOSUB2120:?"MYSHOTIS";W$
1370POSITION24+X,C2+Y:?S$
1380IFS$=""THENGOSUB2140:?"IT'SAMISS!":GOSUB5000:GOSUB2160:GOTO270
1390GOSUB2140:?"IT'SAHIT!":GOSUB6000:HW=C1
1400GOSUB1090:HG1$(HIX,HIX)="2"
1410HA(X,Y)=C2:HP=HP+C1
1420Q1=X:Q2=Y:HD=SD(HG0(X,Y),C0):ONHG0(X,Y)GOTO1430,1450,1470,1490,1510:STOP
1430IFHD=C2THENSM=C1:GOTO1530
1440GOTO270
1450IFHD=C3THENSM=C2:GOTO1530
1460GOTO270
1470IFHD=C3THENSM=C3:GOTO1530
1480GOTO270
1490IFHD=C4THENSM=C4:GOTO1530
1500GOTO270
1510IFHD<C5THEN270
1520SM=C5
1530POSITIONC0,19:?"YOUR";SN$((SM-C1)*C10+C1,SM*C10);"HASBEENSUNK!"
1540GOSUB7000:GOSUB1210
1550REM***ONEMORECOMPUTER-SINK***
1560YS=YS+C1:IFYS=C5THEN2190
1570HW=C0:GOTO270
1580REM***SINKSHIPSUBROUTINE***
1590E1=C0:E2=C9:E3=C1:IFRND(C1)>0.5THENE1=C9:E2=C0:E3=-C1
1600FORFX=E1TOE2STEPE3:FORFY=E1TOE2STEPE3
1610IFHA(FX,FY)<C2THEN1760
1620IFHP=C1THEN1980:REM***RANDOMDIRSHOT***
1630GX=FX:GY=FY:GOSUB1220
1640IFD1<>C1THEN1700
1650LE=C9:RI=C9
1660IFFX>C0THENLE=HA(FX-C1,FY)
1670IFFX<C9THENRI=HA(FX+C1,FY)
1680IFLE=C0ANDRI=C2THENX=FX-C1:Y=FY:GOTO1320
1690IFLE=C2ANDRI=C0THENX=FX+C1:Y=FY:GOTO1320
1700IFD2<>C1THEN1760
1710UP=C9:DN=C9
1720IFFY>C0THENUP=HA(FX,FY-C1)
1730IFFY<C9THENDN=HA(FX,FY+C1)
1740IFUP=C0ANDDN=C2THENX=FX:Y=FY-C1:GOTO1320
1750IFUP=C2ANDDN=C0THENX=FX:Y=FY+C1:GOTO1320
1760NEXTFY:NEXTFX:REM***NOWYOUKNOWTHEREAREPARALLELSHIPS***
1770FORFX=C0TOC9:FORFY=C0TOC9
1780IFHA(FX,FY)<C2THENNEXTFY:NEXTFX:STOP
1790GX=FX:GY=FY:GOSUB1220
1800IFD1<>C1THEN1850
1810LE=C9:RI=C9:DR=C1
1820IFFX>C0THENLE=HA(FX-C1,FY)
1830IFFX<C9THENRI=HA(FX+C1,FY)
1840IFLE=C0ORRI=C0THEN1910
1850IFD2<>C1THEN1900
1860UP=C9:RI=C9:DR=C2
1870IFFY>C0THENUP=HA(FX,FY-C1)
1880IFFY<C9THENDN=HA(FX,FY+C1)
1890IFUP=C0ORDN=C0THEN1910
1900NEXTFY:NEXTFX:STOP
1910IFDR=C2THEN1950
1920XD=-C1+INT(RND(C0)*C3):IFXD=C0THEN1920
1930IFHA(FX+XD,FY)THENXD=-XD
1940X=FX+XD:Y=FY:GOTO1320
1950YD=-C1+INT(RND(C0)*C3):IFYD=C0THEN1950
1960IFHA(FX,FY+YD)THENYD=-YD
1970X=FX:Y=FY+YD:GOTO1320
1980FORX=C1TO20:U1=C1+INT(RND(C0)*C4):U2=C1+INT(RND(C0)*C4):U3=D(U1):D(U1)=D(U2):D(U2)=U3:NEXTX
1990FORDP=C1TOC4:OND(DP)GOTO2000,2020,2040,2060:STOP
2000XI=C1:YI=C0:X=FX:Y=FY:GOSUB1170:XD=DT:XI=-C1:YI=C0:GOSUB1170:XD=XD+DT+C1:IFXD<LSTHEN2100
2010GOTO2070
2020XI=-C1:YI=C0:X=FX:Y=FY:GOSUB1170:XD=DT:XI=C1:YI=C0:GOSUB1170:XD=XD+DT+C1:IFXD<LSTHEN2100
2030GOTO2070
2040XI=C0:YI=-C1:X=FX:Y=FY:GOSUB1170:XD=DT:XI=C0:YI=C1:GOSUB1170:XD=XD+DT+C1:IFXD<LSTHEN2100
2050GOTO2070
2060XI=C0:YI=C1:X=FX:Y=FY:GOSUB1170:XD=DT:XI=C0:YI=-C1:GOSUB1170:XD=XD+DT+C1:IFXD<LSTHEN2100
2070KX=FX+XI:KY=FY+YI:IFKX<C0ORKX>9ORKY<C0ORKY>9THENNEXTDP:STOP
2080IFHA(KX,KY)THENNEXTDP:STOP
2090X=KX:Y=KY:GOTO1320
2100NEXTDP:STOP
2110REM***SCREENSUBROUTINES***
2120GOSUB2130:?"":GOSUB2130:RETURN
2130POSITIONC0,15:RETURN
2140POSITIONC0,17:RETURN
2150POSITIONC0,20:RETURN
2160REM***TIMEDELAYROUTINE***
2170FORDT=C1TO100:NEXTDT:RETURN
2180REM***END-OF-GAMECODE***
2190IFYS=C5THENGOSUB2560
2200GOSUB2160:GOSUB2120:GOSUB2130:IFYS=C5THEN2220
2210?"YOUWIN!!";:?"SHOTS=";QQ:GOSUB9000:GOTO2230
2220?"IWIN!!":GOSUB9000
2230GOSUB2140:?"ANOTHERGAME(/)";:INPUTW$
2240IFW$="N"THENEND
2250IFW$<>"Y"THENGOSUB2140:?"":GOTO2230
2260RESTORE70:CLR:GOTO1
2270REM***SETCOMPUTER'SSHIPS***
2280SV=C1:SL=C2:GOSUB2300:SV=C2:SL=C3:GOSUB2300:SV=C3:SL=C3:GOSUB2300:SV=C4:SL=C4:GOSUB2300
2290SV=C5:SL=C5:GOSUB2300:RETURN
2300WX=INT(RND(C0)*C10):WY=INT(RND(C0)*C10):D=INT(RND(C0)*C4)
2310OND+C1GOTO2320,2340,2360,2380:STOP
2320IFWY<SLTHEN2300
2330B1=C1:B2=C0:XI=C0:YI=-C1:GOTO2400
2340IF(C10-WX)<SLTHEN2300
2350B1=C0:B2=C1:XI=C1:YI=C0:GOTO2400
2360IF(C10-WY)<SLTHEN2300
2370B1=C1:B2=C0:XI=C0:YI=C1:GOTO2400
2380IFWX<SLTHEN2300
2390B1=C0:B2=C1:XI=-C1:YI=C0
2400HX=WX:HY=WY:IFCG0(WX,WY)THEN2300
2410Z1=HX+B1:Z2=HY+B2:IFZ1<C10ANDZ2<C10THENIFCG0(Z1,Z2)ANDRND(1)<0.9500000000000001THEN2300
2420Z1=HX-B1:Z2=HY-B2:IFZ1>-C1ANDZ2>-C1THENIFCG0(Z1,Z2)ANDRND(C1)<0.9500000000000001THEN2300
2430FORWC=C1TO(SL-C1):HX=HX+XI:HY=HY+YI:IFCG0(HX,HY)THEN2300
2440Z1=HX+B1:Z2=HY+B2:IFZ1<C10ANDZ2<C10THENIFCG0(Z1,Z2)ANDRND(C1)<0.9500000000000001THEN2300
2450Z1=HX-B1:Z2=HY-B2:IFZ1>-C1ANDZ2>-C1THENIFCG0(Z1,Z2)ANDRND(C1)<0.9500000000000001THEN2300
2460NEXTWC
2470HX=HX+XI:HY=HY+YI:IFHX<C0ORHX>C9ORHY<C0ORHY>C9THEN2490
2480IFCG0(HX,HY)ANDRND(C1)<0.9500000000000001THEN2300
2490HX=WX:HY=WY:CG0(HX,HY)=SV
2500FORWC=C1TO(SL-C1):HX=HX+XI:HY=HY+YI:CG0(HX,HY)=SV:NEXTWC:RETURN
2510REM***DECODEGRIDINPUT***
2520BX=ASC(S1$(C1,C1))-65:BY=ASC(S1$(LEN(S1$)))-48
2530SX=ASC(S2$(C1,C1))-65:SY=ASC(S2$(LEN(S2$)))-48
2540RETURN
2550REM***SHOWCOMPUTER'SLAYOUTATEND***
2560FORX=C0TOC9:FORY=C0TOC9:WV=CG0(X,Y):POSITION8+Y,C2+X:IFWV=C0THEN?"":GOTO2580
2570?CHR$(ASC(SN$((WV-C1)*C10+C1,(WV-C1)*C10+C1))+128)
2580NEXTY:NEXTX:RETURN
5000FORSS=15TO0STEP-0.2:SOUND0,2,0,SS:NEXTSS:RETURN
6000FORSS=15TO0STEP-0.2:SOUND0,35,0,SS:POKE712,INT(14*RND(0)+48):NEXTSS:POKE712,136:RETURN
7000FORSS=15TO0STEP-0.1:SOUND0,100,0,SS:NEXTSS:FORSS=1TO70:POKE710,SS:NEXTSS:POKE710,148:RETURN
8999FORSS=1TO90:SOUND0,SS,10,2:SOUND1,0,0,4:NEXTSS
9000FORSS=0TO248:POKE710,SS:POKE710,148:SOUND0,SS,0,10
9001IFSS>20THENSOUND1,SS-16,0,10
9002IFSS>60THENSOUND2,SS-56,0,10
9003NEXTSS
9004FORPP=0TO2:SOUNDPP,0,0,0:NEXTPP:RETURN
10000GRAPHICS1:POSITION7,6:?#6;"HIseas"
10005SETCOLOR2,0,0:POKE752,1
10010?"ModifiedByHUX"
10100FORW=1TO600:NEXTW:GOSUB8999:RETURN	

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!