home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 176
/
176.d81
/
b.convoy
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-08-26
|
10KB
|
274 lines
10 poke56,56:clr:dv=peek(186):ifdv<8ordv>29thendv=8
12 poke788,49:tq=ti:poke53371,0
14 poke53281,0:poke53280,0:print"[147]":poke53272,23:gosub60000
20 sys57812"convoy font",dv,0:poke780,0:poke781,0:poke782,56:sys65493
30 dv=peek(186):ifdv<8ordv>29thendv=8
40 sys57812"0:convoy mouse",dv,0:poke780,0:poke781,0:poke782,199:sys65493
47 poke49200,4:poke49201,0:poke49202,0
50 dv=peek(186):ml=199*256:v=ml+156:sysml:sysml+18,0,39,0,24
60 dimln(3),ls(2),co(2),d$(3)
70 deffna(z)=int(z/16):deffnb(z)=z-fna(z)*16
80 d$(0)="[163][164]":d$(1)="[165][166]":d$(2)="[167][168]":d$(3)="[161][162]"
90 t$="[145][181][182][183][157][157][157][184][185][186][157][157][157][187][188][189][145]":t$="[158][195] "+t$+" [206] [214] "+t$+" [217][144]"
92 ifti<tq+100then92
94 print"[147][144]";:poke53280,6:poke53281,6
96 poke53272,31:sysml+6,704
100 gosub9000:rem setup
110 gosub8000:rem map
120 gosub5000:ifq=0then110:rem do what?
130 gosub8000:goto6000:rem game ends
2000 sysml+12,2,22,"[204]istening to radio":sysml+24,60
2005 tr=tr+1:tm=tm+1:iftr>ss-1thengosub7000:tr=tr-ss:gosub8000
2010 ifln(2)<9orrnd(1)>=.4then2030
2020 ls(2)=ln(2):co(2)=0
2030 ifrnd(1)>=.65then2100
2040 ls(0)=ln(0):co(0)=0
2100 sysml+12,2,22,"[208]eriscope search ":sysml+24,60
2105 a=fna(ln(3)):b=fnb(ln(3)):fora1=a-1toa+1:ifa1<1ora1>10then2140
2110 forb1=b-1tob+1:ifb1<1orb1>10then2130
2120 c=16*a1+b1:fori=0to2:ifc=ln(i)thenls(i)=ln(i):co(i)=0
2125 next
2130 nextb1
2140 nexta1
2150 ifco(0)=0andln(1)>9andco(1)>0thenls(1)=ln(0):co(1)=1
2160 ifln(1)>9andco(1)=0andco(0)>0thenls(0)=ln(1):co(0)=1
2170 return
3000 a=fna(ln(3)):x1=a-1:ifx1<1thenx1=a
3002 x2=a+1:ifx2>10thenx2=a
3004 b=fnb(ln(3)):y1=b-1:ify1<1theny1=b
3006 y2=b+1:ify2>10theny2=b
3008 c1=ln(3):tr=tr+1:tm=tm+1:iftr>ss-1thengosub7000:tr=tr-ss:gosub8000
3010 sysml+30,22,39,14,22,32,6:sysml+30,22,38,14,18,32,16
3020 sysml+12,23,15,"[195]lick on [212]arget[136] to[136] [198]ire [212]orpedo"
3070 sysml+18,2*x1-1,2*x2,2*y1-1,2*y2-1
3090 c=-(x1<a)-(a<x2)*2-(y1<b)*4-(b<y2)*8
3100 onc-4goto3190,3180,3200,3110,3160,3150,3170,3110,3220,3210,3230
3110 stop
3150 gosub3360:gosub3380:gosub3390:goto3400
3160 gosub3340:gosub3370:gosub3380:goto3400
3170 gosub3340:gosub3360:gosub3370:gosub3380:gosub3390:goto3400
3180 gosub3320:gosub3330:gosub3360:goto3400
3190 gosub3310:gosub3320:gosub3340:goto3400
3200 gosub3310:gosub3320:gosub3330:gosub3340:gosub3360:goto3400
3210 gosub3320:gosub3330:gosub3360:gosub3380:gosub3390:goto3400
3220 gosub3310:gosub3320:gosub3340:gosub3370:gosub3380:goto3400
3230 gosub3310:gosub3320:gosub3330:gosub3340:gosub3360:gosub3370:gosub3380:gosub3390:goto3400
3310 sysml+15,1,2*a-3,2*a-2,2*b-3,2*b-3:return
3320 sysml+15,2,2*a-1,2*a,2*b-3,2*b-3:return
3330 sysml+15,3,2*a+1,2*a+2,2*b-3,2*b-3:return
3340 sysml+15,4,2*a-3,2*a-2,2*b-1,2*b-1:return
3360 sysml+15,5,2*a+1,2*a+2,2*b-1,2*b-1:return
3370 sysml+15,6,2*a-3,2*a-2,2*b+1,2*b+1:return
3380 sysml+15,7,2*a-1,2*a,2*b+1,2*b+1:return
3390 sysml+15,8,2*a+1,2*a+2,2*b+1,2*b+1:return
3400 sysml+9:sysml+60,"[157][145]"+chr$(13):ifrg%=0and(i%=0ori%=5)then3400
3410 ifi%=0then3440
3420 ifi%=5then3444
3430 sysml+21,cx%+(i%=1)-(i%=2),cy%+(i%=3)-(i%=4):sysml+9:ifrg%=0then3400
3440 ifcr%=0then3490
3442 oncr%goto3450,3455,3460,3465,3470,3475,3480,3485
3444 onrg%goto3450,3455,3460,3465,3470,3475,3480,3485
3450 tp=c1-17:goto3500
3455 tp=c1-1:goto3500
3460 tp=c1+15:goto3500
3465 tp=c1-16:goto3500
3470 tp=c1+16:goto3500
3475 tp=c1-15:goto3500
3480 tp=c1+1:goto3500
3485 tp=c1+17:goto3500
3490 sysml+36,rg%,255,192:sysml+36,rg%,255,192:goto3400
3500 tl=tl-1:tr=tr+1:tm=tm+1:iftr>ss-1thengosub7000:tr=tr-ss:gosub8000
3505 iftp<>ln(0)then3530
3510 sysml+12,2,22,"[211]ank [195]argo [211]hip":sysml+24,60:ln(0)=3
3520 q=1:fori=0to2:ls(i)=ln(i):co(i)=0:next
3525 return
3530 iftp<>ln(1)then3560
3540 sysml+12,2,22,"[211]ank [197]scort [211]hip":sysml+24,60:ln(1)=3:ls(1)=3:co(1)=0
3550 ifco(0)>0thenls(0)=tp:co(0)=1
3560 iftp<>ln(2)then3580
3570 sysml+12,2,22,"[211]ank [196]estroyer":sysml+24,60:ln(2)=3:ls(2)=3:co(2)=0
3580 iftl=0then3520
3590 goto3525
4000 tr=tr+1:tm=tm+1:iftr>ss-1thengosub7000:tr=tr-ss:gosub8000
4005 tr=tr+1:tm=tm+1:iftr>ss-1thengosub7000:tr=tr-ss:gosub8000
4010 sysml+30,22,39,14,22,32,6:sysml+30,22,38,14,20,32,16
4020 sysml+12,23,15,"[195]lick on [211]quare[136] to [205]ove [211]ub[136][136] [195]lick on [211]ub[136] to [215]ait"
4030 a=fna(ln(3)):x1=a-1:ifx1<1thenx1=a
4040 x2=a+1:ifx2>10thenx2=a
4050 b=fnb(ln(3)):y1=b-1:ify1<1theny1=b
4060 y2=b+1:ify2>10theny2=b
4070 sysml+18,2*x1-1,2*x2,2*y1,2*y2
4090 c=-(x1<a)-(a<x2)*2-(y1<b)*4-(b<y2)*8
4100 onc-4goto4190,4180,4200,4110,4160,4150,4170,4110,4220,4210,4230
4110 stop
4150 gosub4350:gosub4360:gosub4380:gosub4390:goto4400
4160 gosub4340:gosub4350:gosub4370:gosub4380:goto4400
4170 gosub4340:gosub4350:gosub4360:gosub4370:gosub4380:gosub4390:goto4400
4180 gosub4320:gosub4330:gosub4350:gosub4360:goto4400
4190 gosub4310:gosub4320:gosub4340:gosub4350:goto4400
4200 gosub4310:gosub4320:gosub4330:gosub4340:gosub4350:gosub4360:goto4400
4210 gosub4320:gosub4330:gosub4350:gosub4360:gosub4380:gosub4390:goto4400
4220 gosub4310:gosub4320:gosub4340:gosub4350:gosub4370:gosub4380:goto4400
4230 gosub4310:gosub4320:gosub4330:gosub4340:gosub4350:gosub4360:gosub4370:gosub4380:gosub4390
4240 goto4400
4310 sysml+15,1,2*a-3,2*a-2,2*b-2,2*b-2:return
4320 sysml+15,2,2*a-1,2*a,2*b-2,2*b-2:return
4330 sysml+15,3,2*a+1,2*a+2,2*b-2,2*b-2:return
4340 sysml+15,4,2*a-3,2*a-2,2*b,2*b:return
4350 sysml+15,5,2*a-1,2*a,2*b,2*b:return
4360 sysml+15,6,2*a+1,2*a+2,2*b,2*b:return
4370 sysml+15,7,2*a-3,2*a-2,2*b+2,2*b+2:return
4380 sysml+15,8,2*a-1,2*a,2*b+2,2*b+2:return
4390 sysml+15,9,2*a+1,2*a+2,2*b+2,2*b+2:return
4400 sysml+9:sysml+60,"[157][145]"+chr$(13):ifrg%=0and(i%=0ori%=5)then4400
4410 ifi%=0then4440
4420 ifi%=5then4444
4430 sysml+21,cx%+(i%=1)-(i%=2),cy%+(i%=3)-(i%=4):sysml+9:ifrg%=0then4400
4440 ifcr%=0then4490
4442 oncr%goto4450,4455,4460,4465,4500,4470,4475,4480,4485
4444 onrg%goto4450,4455,4460,4465,4500,4470,4475,4480,4485
4450 ln(3)=ln(3)-17:goto4500
4455 ln(3)=ln(3)-1:goto4500
4460 ln(3)=ln(3)+15:goto4500
4465 ln(3)=ln(3)-16:goto4500
4470 ln(3)=ln(3)+16:goto4500
4475 ln(3)=ln(3)-15:goto4500
4480 ln(3)=ln(3)+1:goto4500
4485 ln(3)=ln(3)+17:goto4500
4490 sysml+36,rg%,255,192:sysml+36,rg%,255,192:goto4400
4500 ifln(3)<>ln(1)then4530
4510 ln(3)=1
4520 q=1:fori=0to2:ls(i)=ln(i):co(i)=0:next:goto4570
4530 ifln(3)<>ln(2)then4550
4540 ln(3)=2:goto4520
4550 ifln(3)<>ln(0)then4570
4560 ls(0)=ln(0):co(0)=0:ifln(1)>9andco(1)>0thenls(1)=ln(0):co(1)=1
4570 tr=tr+1:tm=tm+1:iftr>ss-1thengosub7000:tr=tr-ss:gosub8000
4580 tr=tr+1:tm=tm+1:iftr>ss-1thengosub7000:tr=tr-ss:gosub8000
4590 return
5000 sysml+30,22,39,14,22,255,17
5010 sysml+12,25,15,"[213]p [208]eriscope[136][136][198]ire [212]orpedo[136][136][205]ove [211]ub[136][136][209]uit [199]ame"
5020 sysml+18,23,38,15,21:sysml+21,38,15
5030 fori=0to3:sysml+15,i+1,23,38,15+2*i,15+2*i:next
5040 sysml+9:sysml+60,"[157][145]"+chr$(13):ifrg%=0and(i%=0ori%=5)then5040
5050 ifi%=0then5080
5060 ifi%=5then5090
5070 sysml+21,cx%+(i%=1)-(i%=2),cy%+(i%=3)-(i%=4):sysml+9:ifrg%=0then5040
5080 ifcr%=0then5150
5090 ifcr%=1orrg%=1andi%=5thengosub2000:goto5200
5100 ifcr%=2orrg%=2andi%=5thengosub3000:goto5200
5110 ifcr%=3orrg%=3andi%=5thengosub4000:goto5200
5120 ifcr%=4orrg%=4andi%=5thenq=1:fori=0to2:ls(i)=ln(i):co(i)=0:next:goto5200
5150 sysml+36,rg%,255,192:sysml+36,rg%,255,192:goto5040
5200 return
6000 a=0:b=0:iftl=0thensysml+12,22,15,"[207]ut of torpedoes":a=1
6010 ifln(0)=17thensysml+12,22,16,"[195]argo in port":a=1
6020 ifln(3)=1thensysml+12,22,17,"[197]scort sank [211]ub":a=1
6030 ifln(3)=2thensysml+12,22,17,"[196]estroyer sank [211]ub":a=1
6040 ifln(0)>9then6045
6041 b=1:sysml+12,22,18,"[211]ub sank [195]argo":a=1
6042 poke49201,peek(49201)+1:poke49202,0
6043 ifpeek(49201)>2thenpoke49201,0:ifpeek(49200)<7thenpoke49200,peek(49200)+1
6045 ifa=0thensysml+12,22,19,"[211]ub captain quits"
6046 ifb=1then6050
6047 poke49202,peek(49202)+1:poke49201,0
6048 ifpeek(49202)>2thenpoke49202,0:ifpeek(49200)>1thenpoke49200,peek(49200)-1
6050 sysml+30,22,39,20,24,32,17:sysml+12,25,21,"[206]ew [199]ame[136][136][209]uit"
6060 sysml+15,1,23,38,21,21:sysml+15,2,23,