home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 176 / 176.d81 / b.convoy (.txt) < prev    next >
Commodore BASIC  |  2022-08-26  |  10KB  |  274 lines

  1. 10 poke56,56:clr:dv=peek(186):ifdv<8ordv>29thendv=8
  2. 12 poke788,49:tq=ti:poke53371,0
  3. 14 poke53281,0:poke53280,0:print"[147]":poke53272,23:gosub60000
  4. 20 sys57812"convoy font",dv,0:poke780,0:poke781,0:poke782,56:sys65493
  5. 30 dv=peek(186):ifdv<8ordv>29thendv=8
  6. 40 sys57812"0:convoy mouse",dv,0:poke780,0:poke781,0:poke782,199:sys65493
  7. 47 poke49200,4:poke49201,0:poke49202,0
  8. 50 dv=peek(186):ml=199*256:v=ml+156:sysml:sysml+18,0,39,0,24
  9. 60 dimln(3),ls(2),co(2),d$(3)
  10. 70 deffna(z)=int(z/16):deffnb(z)=z-fna(z)*16
  11. 80 d$(0)="[163][164]":d$(1)="[165][166]":d$(2)="[167][168]":d$(3)="[161][162]"
  12. 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]"
  13. 92 ifti<tq+100then92
  14. 94 print"[147][144]";:poke53280,6:poke53281,6
  15. 96 poke53272,31:sysml+6,704
  16. 100 gosub9000:rem setup
  17. 110 gosub8000:rem map
  18. 120 gosub5000:ifq=0then110:rem do what?
  19. 130 gosub8000:goto6000:rem game ends
  20. 2000 sysml+12,2,22,"[204]istening to radio":sysml+24,60
  21. 2005 tr=tr+1:tm=tm+1:iftr>ss-1thengosub7000:tr=tr-ss:gosub8000
  22. 2010 ifln(2)<9orrnd(1)>=.4then2030
  23. 2020 ls(2)=ln(2):co(2)=0
  24. 2030 ifrnd(1)>=.65then2100
  25. 2040 ls(0)=ln(0):co(0)=0
  26. 2100 sysml+12,2,22,"[208]eriscope search  ":sysml+24,60
  27. 2105 a=fna(ln(3)):b=fnb(ln(3)):fora1=a-1toa+1:ifa1<1ora1>10then2140
  28. 2110 forb1=b-1tob+1:ifb1<1orb1>10then2130
  29. 2120 c=16*a1+b1:fori=0to2:ifc=ln(i)thenls(i)=ln(i):co(i)=0
  30. 2125 next
  31. 2130 nextb1
  32. 2140 nexta1
  33. 2150 ifco(0)=0andln(1)>9andco(1)>0thenls(1)=ln(0):co(1)=1
  34. 2160 ifln(1)>9andco(1)=0andco(0)>0thenls(0)=ln(1):co(0)=1
  35. 2170 return
  36. 3000 a=fna(ln(3)):x1=a-1:ifx1<1thenx1=a
  37. 3002 x2=a+1:ifx2>10thenx2=a
  38. 3004 b=fnb(ln(3)):y1=b-1:ify1<1theny1=b
  39. 3006 y2=b+1:ify2>10theny2=b
  40. 3008 c1=ln(3):tr=tr+1:tm=tm+1:iftr>ss-1thengosub7000:tr=tr-ss:gosub8000
  41. 3010 sysml+30,22,39,14,22,32,6:sysml+30,22,38,14,18,32,16
  42. 3020 sysml+12,23,15,"[195]lick on [212]arget[136]      to[136]  [198]ire [212]orpedo"
  43. 3070 sysml+18,2*x1-1,2*x2,2*y1-1,2*y2-1
  44. 3090 c=-(x1<a)-(a<x2)*2-(y1<b)*4-(b<y2)*8
  45. 3100 onc-4goto3190,3180,3200,3110,3160,3150,3170,3110,3220,3210,3230
  46. 3110 stop
  47. 3150 gosub3360:gosub3380:gosub3390:goto3400
  48. 3160 gosub3340:gosub3370:gosub3380:goto3400
  49. 3170 gosub3340:gosub3360:gosub3370:gosub3380:gosub3390:goto3400
  50. 3180 gosub3320:gosub3330:gosub3360:goto3400
  51. 3190 gosub3310:gosub3320:gosub3340:goto3400
  52. 3200 gosub3310:gosub3320:gosub3330:gosub3340:gosub3360:goto3400
  53. 3210 gosub3320:gosub3330:gosub3360:gosub3380:gosub3390:goto3400
  54. 3220 gosub3310:gosub3320:gosub3340:gosub3370:gosub3380:goto3400
  55. 3230 gosub3310:gosub3320:gosub3330:gosub3340:gosub3360:gosub3370:gosub3380:gosub3390:goto3400
  56. 3310 sysml+15,1,2*a-3,2*a-2,2*b-3,2*b-3:return
  57. 3320 sysml+15,2,2*a-1,2*a,2*b-3,2*b-3:return
  58. 3330 sysml+15,3,2*a+1,2*a+2,2*b-3,2*b-3:return
  59. 3340 sysml+15,4,2*a-3,2*a-2,2*b-1,2*b-1:return
  60. 3360 sysml+15,5,2*a+1,2*a+2,2*b-1,2*b-1:return
  61. 3370 sysml+15,6,2*a-3,2*a-2,2*b+1,2*b+1:return
  62. 3380 sysml+15,7,2*a-1,2*a,2*b+1,2*b+1:return
  63. 3390 sysml+15,8,2*a+1,2*a+2,2*b+1,2*b+1:return
  64. 3400 sysml+9:sysml+60,"[157][145]"+chr$(13):ifrg%=0and(i%=0ori%=5)then3400
  65. 3410 ifi%=0then3440
  66. 3420 ifi%=5then3444
  67. 3430 sysml+21,cx%+(i%=1)-(i%=2),cy%+(i%=3)-(i%=4):sysml+9:ifrg%=0then3400
  68. 3440 ifcr%=0then3490
  69. 3442 oncr%goto3450,3455,3460,3465,3470,3475,3480,3485
  70. 3444 onrg%goto3450,3455,3460,3465,3470,3475,3480,3485
  71. 3450 tp=c1-17:goto3500
  72. 3455 tp=c1-1:goto3500
  73. 3460 tp=c1+15:goto3500
  74. 3465 tp=c1-16:goto3500
  75. 3470 tp=c1+16:goto3500
  76. 3475 tp=c1-15:goto3500
  77. 3480 tp=c1+1:goto3500
  78. 3485 tp=c1+17:goto3500
  79. 3490 sysml+36,rg%,255,192:sysml+36,rg%,255,192:goto3400
  80. 3500 tl=tl-1:tr=tr+1:tm=tm+1:iftr>ss-1thengosub7000:tr=tr-ss:gosub8000
  81. 3505 iftp<>ln(0)then3530
  82. 3510 sysml+12,2,22,"[211]ank [195]argo [211]hip":sysml+24,60:ln(0)=3
  83. 3520 q=1:fori=0to2:ls(i)=ln(i):co(i)=0:next
  84. 3525 return
  85. 3530 iftp<>ln(1)then3560
  86. 3540 sysml+12,2,22,"[211]ank [197]scort [211]hip":sysml+24,60:ln(1)=3:ls(1)=3:co(1)=0
  87. 3550 ifco(0)>0thenls(0)=tp:co(0)=1
  88. 3560 iftp<>ln(2)then3580
  89. 3570 sysml+12,2,22,"[211]ank [196]estroyer":sysml+24,60:ln(2)=3:ls(2)=3:co(2)=0
  90. 3580 iftl=0then3520
  91. 3590 goto3525
  92. 4000 tr=tr+1:tm=tm+1:iftr>ss-1thengosub7000:tr=tr-ss:gosub8000
  93. 4005 tr=tr+1:tm=tm+1:iftr>ss-1thengosub7000:tr=tr-ss:gosub8000
  94. 4010 sysml+30,22,39,14,22,32,6:sysml+30,22,38,14,20,32,16
  95. 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"
  96. 4030 a=fna(ln(3)):x1=a-1:ifx1<1thenx1=a
  97. 4040 x2=a+1:ifx2>10thenx2=a
  98. 4050 b=fnb(ln(3)):y1=b-1:ify1<1theny1=b
  99. 4060 y2=b+1:ify2>10theny2=b
  100. 4070 sysml+18,2*x1-1,2*x2,2*y1,2*y2
  101. 4090 c=-(x1<a)-(a<x2)*2-(y1<b)*4-(b<y2)*8
  102. 4100 onc-4goto4190,4180,4200,4110,4160,4150,4170,4110,4220,4210,4230
  103. 4110 stop
  104. 4150 gosub4350:gosub4360:gosub4380:gosub4390:goto4400
  105. 4160 gosub4340:gosub4350:gosub4370:gosub4380:goto4400
  106. 4170 gosub4340:gosub4350:gosub4360:gosub4370:gosub4380:gosub4390:goto4400
  107. 4180 gosub4320:gosub4330:gosub4350:gosub4360:goto4400
  108. 4190 gosub4310:gosub4320:gosub4340:gosub4350:goto4400
  109. 4200 gosub4310:gosub4320:gosub4330:gosub4340:gosub4350:gosub4360:goto4400
  110. 4210 gosub4320:gosub4330:gosub4350:gosub4360:gosub4380:gosub4390:goto4400
  111. 4220 gosub4310:gosub4320:gosub4340:gosub4350:gosub4370:gosub4380:goto4400
  112. 4230 gosub4310:gosub4320:gosub4330:gosub4340:gosub4350:gosub4360:gosub4370:gosub4380:gosub4390
  113. 4240 goto4400
  114. 4310 sysml+15,1,2*a-3,2*a-2,2*b-2,2*b-2:return
  115. 4320 sysml+15,2,2*a-1,2*a,2*b-2,2*b-2:return
  116. 4330 sysml+15,3,2*a+1,2*a+2,2*b-2,2*b-2:return
  117. 4340 sysml+15,4,2*a-3,2*a-2,2*b,2*b:return
  118. 4350 sysml+15,5,2*a-1,2*a,2*b,2*b:return
  119. 4360 sysml+15,6,2*a+1,2*a+2,2*b,2*b:return
  120. 4370 sysml+15,7,2*a-3,2*a-2,2*b+2,2*b+2:return
  121. 4380 sysml+15,8,2*a-1,2*a,2*b+2,2*b+2:return
  122. 4390 sysml+15,9,2*a+1,2*a+2,2*b+2,2*b+2:return
  123. 4400 sysml+9:sysml+60,"[157][145]"+chr$(13):ifrg%=0and(i%=0ori%=5)then4400
  124. 4410 ifi%=0then4440
  125. 4420 ifi%=5then4444
  126. 4430 sysml+21,cx%+(i%=1)-(i%=2),cy%+(i%=3)-(i%=4):sysml+9:ifrg%=0then4400
  127. 4440 ifcr%=0then4490
  128. 4442 oncr%goto4450,4455,4460,4465,4500,4470,4475,4480,4485
  129. 4444 onrg%goto4450,4455,4460,4465,4500,4470,4475,4480,4485
  130. 4450 ln(3)=ln(3)-17:goto4500
  131. 4455 ln(3)=ln(3)-1:goto4500
  132. 4460 ln(3)=ln(3)+15:goto4500
  133. 4465 ln(3)=ln(3)-16:goto4500
  134. 4470 ln(3)=ln(3)+16:goto4500
  135. 4475 ln(3)=ln(3)-15:goto4500
  136. 4480 ln(3)=ln(3)+1:goto4500
  137. 4485 ln(3)=ln(3)+17:goto4500
  138. 4490 sysml+36,rg%,255,192:sysml+36,rg%,255,192:goto4400
  139. 4500 ifln(3)<>ln(1)then4530
  140. 4510 ln(3)=1
  141. 4520 q=1:fori=0to2:ls(i)=ln(i):co(i)=0:next:goto4570
  142. 4530 ifln(3)<>ln(2)then4550
  143. 4540 ln(3)=2:goto4520
  144. 4550 ifln(3)<>ln(0)then4570
  145. 4560 ls(0)=ln(0):co(0)=0:ifln(1)>9andco(1)>0thenls(1)=ln(0):co(1)=1
  146. 4570 tr=tr+1:tm=tm+1:iftr>ss-1thengosub7000:tr=tr-ss:gosub8000
  147. 4580 tr=tr+1:tm=tm+1:iftr>ss-1thengosub7000:tr=tr-ss:gosub8000
  148. 4590 return
  149. 5000 sysml+30,22,39,14,22,255,17
  150. 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"
  151. 5020 sysml+18,23,38,15,21:sysml+21,38,15
  152. 5030 fori=0to3:sysml+15,i+1,23,38,15+2*i,15+2*i:next
  153. 5040 sysml+9:sysml+60,"[157][145]"+chr$(13):ifrg%=0and(i%=0ori%=5)then5040
  154. 5050 ifi%=0then5080
  155. 5060 ifi%=5then5090
  156. 5070 sysml+21,cx%+(i%=1)-(i%=2),cy%+(i%=3)-(i%=4):sysml+9:ifrg%=0then5040
  157. 5080 ifcr%=0then5150
  158. 5090 ifcr%=1orrg%=1andi%=5thengosub2000:goto5200
  159. 5100 ifcr%=2orrg%=2andi%=5thengosub3000:goto5200
  160. 5110 ifcr%=3orrg%=3andi%=5thengosub4000:goto5200
  161. 5120 ifcr%=4orrg%=4andi%=5thenq=1:fori=0to2:ls(i)=ln(i):co(i)=0:next:goto5200
  162. 5150 sysml+36,rg%,255,192:sysml+36,rg%,255,192:goto5040
  163. 5200 return
  164. 6000 a=0:b=0:iftl=0thensysml+12,22,15,"[207]ut of torpedoes":a=1
  165. 6010 ifln(0)=17thensysml+12,22,16,"[195]argo in port":a=1
  166. 6020 ifln(3)=1thensysml+12,22,17,"[197]scort sank [211]ub":a=1
  167. 6030 ifln(3)=2thensysml+12,22,17,"[196]estroyer sank [211]ub":a=1
  168. 6040 ifln(0)>9then6045
  169. 6041 b=1:sysml+12,22,18,"[211]ub sank [195]argo":a=1
  170. 6042 poke49201,peek(49201)+1:poke49202,0
  171. 6043 ifpeek(49201)>2thenpoke49201,0:ifpeek(49200)<7thenpoke49200,peek(49200)+1
  172. 6045 ifa=0thensysml+12,22,19,"[211]ub captain quits"
  173. 6046 ifb=1then6050
  174. 6047 poke49202,peek(49202)+1:poke49201,0
  175. 6048 ifpeek(49202)>2thenpoke49202,0:ifpeek(49200)>1thenpoke49200,peek(49200)-1
  176. 6050 sysml+30,22,39,20,24,32,17:sysml+12,25,21,"[206]ew [199]ame[136][136][209]uit"
  177. 6060 sysml+15,1,23,38,21,21:sysml+15,2,23,