home *** CD-ROM | disk | FTP | other *** search
/ Compute! Gazette 1990 May / 1990-05.d64 / isolation (.txt) < prev    next >
Commodore BASIC  |  2022-09-20  |  6KB  |  162 lines

  1. 5 rem copyright 1990 compute! publications, inc. - all rights reserved
  2. 10 goto 1110
  3. 20 j=peek(56321+(p=2orp=3))and15
  4. 30 ifq=.thenif(peek(56321+(p=2orp=3))and16)=.thenreturn
  5. 40 ifqthenr=-(r=.):ifrtheno=b*32+31:z=o+o*(z=o):pokev+p*2+1,z
  6. 50 u=((jand4)=.)-((jand8)=.):h=((jand1)=.)-((jand2)=.)
  7. 60 ifu=.thenifh=.goto20
  8. 70 x=x+u:y=y+h:ifx<1orx>7thenx=-6*(x>7)+1:u=.
  9. 80 ify<1ory>6theny=-5*(y>6)+1:h=.
  10. 90 ifqthenreturn
  11. 100 pokev+21,peek(v+21)and254
  12. 110 ifx>6thenpokev+16,peek(v+16)or1:pokev,316-x*40:goto130
  13. 120 poke v+16,peek(v+16)and254:pokev,x*40+12
  14. 130 pokev+1,y*32+30:poke v+21,peek(v+21)or1:goto20
  15. 140 gosub 160
  16. 150 forz=1to12:pokes+24,.:forzz=1to3:next:pokes+24,15:next:return
  17. 160 forz=.to23:pokes+z,.:next:return
  18. 170 p=p+1:ifp>cthenp=1
  19. 180 ifw=c-1goto 1050
  20. 190 iflx(p)=9goto170
  21. 200 x=lx(p):y=ly(p):ifp=2andcp=1goto310
  22. 210 q=1:a=x:b=y
  23. 220 x=a:y=b:gosub20:ifx=aandy=bgoto220
  24. 230 ifs(y,x)=.goto220
  25. 240 ifp(y,x)>.goto220
  26. 250 ifx=.orx=8ory=.ory=7goto220
  27. 260 goto610
  28. 270 e=1:xs=x:ys=y:if(xs=2orxs=6)thenif(ys=2orys=5)thene=.:return
  29. 280 e=1:ifxs<1orxs>7orys<1orys>6thene=.:return
  30. 290 ifs(ys,xs)=.orp(ys,xs)>.thene=.
  31. 300 return
  32. 310 tr=.
  33. 320 tr=tr+1:at=.:iftr=5goto540
  34. 330 at=at+1:ifat=20goto320
  35. 340 xp=x+int(rnd(1)*3)-1:ifxp=xthenif(tr=1ortr=3)goto330
  36. 350 yp=y+int(rnd(1)*3)-1:ifyp=ythenif(tr=1ortr=3)goto330
  37. 360 ifyp<>ythenifxp<>xthenif(try=2ortry=4)goto 330
  38. 370 ifxp<1orxp>7oryp<1oryp>6goto330
  39. 380 ifs(yp,xp)=.orp(yp,xp)>.goto330
  40. 390 iftr>2goto600
  41. 400 sx=xp-x:sy=yp-y:iftr=2goto470
  42. 410 xs=x+2*sx:ys=y+2*sy:gosub280:ifegoto600
  43. 420 xs=x+sx:ys=y+2*sy:gosub280:ifegoto600
  44. 430 xs=x+2*sx:ys=y+sy:gosub280:ifegoto600
  45. 440 xs=x+2*sx:ys=y+1*sy:gosub280:ifegoto600
  46. 450 xs=x+1*sx:ys=y+2*sy:gosub280:ifegoto600
  47. 460 goto 330
  48. 470 ys=y+2*sy:xs=x-1:gosub280:ifegoto600
  49. 480 xs=x:gosub280:ifegoto600
  50. 490 xs=x+1:gosub280:ifegoto600
  51. 500 xs=x+2*xs:ys=y-1:gosub280:ifegoto600
  52. 510 ys=y:gosub280:ifegoto600
  53. 520 ys=y+1:gosub280:ifegoto600
  54. 530 goto330
  55. 540 z=-2
  56. 550 z=z+1:xs=x+z:ys=y-1:gosub280:ifegoto590
  57. 560 ys=y:ifzthengosub280:ifegoto590
  58. 570 ys=y+1:gosub280:ifegoto590
  59. 580 goto550
  60. 590 xp=xs:yp=ys
  61. 600 a=x:b=y:u=xp-x:h=yp-y:x=xp:y=yp
  62. 610 forz=1to8:o=a*40+12+z*5*u:on-(o>255)goto630
  63. 620 pokev+16,peek(v+16)and255-2*(int(p*p/2)-(p=1)):pokev+p*2,o:goto640
  64. 630 pokev+16,peek(v+16)or2*(int(p*p/2)-(p=1)):pokev+p*2,o-256
  65. 640 o=b*32+31+z*4*h:pokev+p*2+1,o:next
  66. 650 lx(p)=x:ly(p)=y:p(b,a)=.:p(y,x)=p
  67. 660 ifp=2andcp=1goto780
  68. 670 poke v+21,peek(v+21)and254:pokev+16,peek(v+16)and254
  69. 680 onpgoto690,700,710,720
  70. 690 x=2:y=2:pokev,92:pokev+1,94:goto730
  71. 700 x=6:y=5:pokev+1,190:pokev,252:goto730
  72. 710 x=6:y=2:pokev+1,94:pokev,252:goto730
  73. 720 x=2:y=5:pokev,92:pokev+1,190
  74. 730 pokev+21,31
  75. 740 q=.:gosub20:pokev+1,.:ifp(y,x)thengosub140:goto670
  76. 750 ifs(y,x)=.thengosub140:goto670
  77. 760 if(x=2orx=6)thenif(y=2ory=5)thengosub140:goto670
  78. 770 goto 880
  79. 780 z=.
  80. 790 z=z+1:ifz>8goto840
  81. 800 x=lx(1)+cx(z):iflx(1)>4thenx=lx(1)+cx(z)*-1
  82. 810 y=ly(1)+cy(z):ifly(1)>3theny=ly(1)+cy(z)*-1
  83. 820 gosub270:ifegoto880
  84. 830 goto790
  85. 840 y=1:x=.
  86. 850 x=x+1:ifx>7thenx=.:y=y+1
  87. 860 gosub270:ifegoto880
  88. 870 goto850
  89. 880 pokes+3,8:pokes+6,240:pokes+5,10:pokes+1,70:pokes+4,129:ps=52102+x*5+y*160
  90. 890 forz=.to2:o=ps+z*40:pokeo,224:pokeo+1,224:pokeo+2,224:pokeo+3,224:next
  91. 900 s(y,x)=.:forz=15to.step-.2:pokes+24,z:next
  92. 910 forz=1toc:ifz=pgoto940
  93. 920 iflx(z)=9thengoto940
  94. 930 gosub 950
  95. 940 next:z=p:gosub950:goto170
  96. 950 x=lx(z):y=ly(z):ifs(y+1,x)andp(y+1,x)=.goto1040
  97. 960 ifs(y-1,x)thenifp(y-1,x)=.goto1040
  98. 970 ifs(y,x+1)thenifp(y,x+1)=.goto1040
  99. 980 ifs(y,x-1)thenifp(y,x-1)=.goto1040
  100. 990 ifs(y+1,x+1)thenifp(y+1,x+1)=.goto1040
  101. 1000 ifs(y+1,x-1)thenifp(y+1,x-1)=.goto1040
  102. 1010 ifs(y-1,x+1)thenifp(y-1,x+1)=.goto1040
  103. 1020 ifs(y-1,x-1)thenifp(y-1,x-1)=.goto1040
  104. 1030 w=w+1:pokev+z*2+1,.:p(y,x)=.:lx(z)=9
  105. 1040 return
  106. 1050 gosub 160:n$="#4eueu":d$="***&*#"
  107. 1060 pokes+5,13:pokes+12,9:pokes+24,15:forz=1to6:n=asc(mid$(n$,z,1))+15
  108. 1070 d=asc(mid$(d$,z,1))-34:pokes+1,n:pokes+8,n/2:pokes+4,17:pokes+11,33
  109. 1080 forw=1to800/d:next:pokes+4,16:pokes+11,32:next:pokes+24,.
  110. 1090 poke198,.:wait198,1:pokev+21,.:print"[147]":poke53281,.
  111. 1100 poke53265,peek(53265)and191:goto1360
  112. 1110 print"[147]"chr$(142)chr$(8)
  113. 1120 poke88,.:poke89,232:poke90,.:poke91,216:poke781,9:poke782,1:poke56333,127
  114. 1130 poke1,51:sys41964:poke1,55:poke56333,129:poke56578,peek(56578)or3
  115. 1140 poke56576,peek(56576)and252:poke53272,(peek(53272)and63)or48:poke648,204
  116. 1150 poke53272,(peek(53272)and240)or8:print"[147]":poke 53280,6
  117. 1160 poke53281,.:poke 53282,1:poke 53283,14:poke 53284,.:z=rnd(-ti)
  118. 1170 printtab(11)"one moment please"
  119. 1180 data0,44,0,0,12,44,44,28,12,12,92,28,28,92,92,92,92,92
  120. 1190 data92,92,92,92,92,92,92,92,92,28,92,28,12,28,42,170,12,170
  121. 1200 data42,170,170,10,170,168,2,170,168,255,24,255,192,60,3,192,126,3
  122. 1210 data192,24,3,0,24,0,32,24,4,96,24,6,255,255,255,255,255,255,96,24,6
  123. 1220 data32,24,4,0,24,0,192,24,3,192,126,3,192,60,3,255,24,255
  124. 1230 forz=.to44:reada:poke59392+z,a:next:forz=45to62:poke59392+z,.:next
  125. 1240 forz=.to47:reada:poke59456+z,a:next:forz=48to62:poke59456+z,.:next
  126. 1250 v=53248:s=54272:gosub160
  127. 1260 poke53240,161:poke53241,160:poke53242,160:poke53243,160:poke53244,160
  128. 1270 pokev+39,1:pokev+40,7:pokev+41,13:pokev+42,3:pokev+43,15
  129. 1280 pokev+28,30:pokev+37,1:pokev+38,11
  130. 1290 forz=.to39:reada:poke57560+z,a:next:forz=.to47:reada:poke57680+z,a:next
  131. 1300 forz=1to8:readx:cx(z)=x:next:forz=1to8:ready:cy(z)=y:next
  132. 1310 data15,15,15,15,15,15,15,15,15,14,12,8,15,15,15,15,0,0,0,0,255,239,207,143
  133. 1320 data0,0,0,0,255,255,255,255,15,15,15,15,255,239,207,143,15,14,12,8,255,239
  134. 1330 data207,143,15,14,12,8,255,255,255,255,0,0,0,0,15,15,15,15,1,3,7,15,255
  135. 1340 data239,207,143,15,15,15,15,255,255,255,255,15,14,12,8,31,63,127,255
  136. 1350 data1,1,0,1,-1,0,-1,-1,1,0,1,-1,1,-1,0,-1
  137. 1360 fory=1to6:forx=1to7:p(y,x)=.:s(y,x)=1:next:next:lx(1)=2:ly(1)=2:lx(2)=6
  138. 1370 ly(2)=5:lx(3)=6:ly(3)=2:lx(4)=2:ly(4)=5:p=.:w=.:cp=.
  139. 1380 poke53265,peek(53265)and191:print"[147]":printtab(10)"[178]"
  140. 1390 printtab(10)"[194]      [194]  [195][219][195]":printtab(10)"[155][194][213][195][201][213][195][201][194][213][195][174][194][209][155][213][195][201][178][195][201]"
  141. 1400 printtab(10)"[152][194][202][195][201][194] [194][194][194] [194][194][194][194] [194][194] [194]":printtab(10)"[151][177][202][195][203][202][195][203][202][202][195][202][202][202][202][195][203][177] [202][203]"
  142. 1410 printtab(7)"[164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]"
  143. 1420 print""tab(7)"[158]how many players? (1 to 4)"
  144. 1430 printtab(7)"[164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]"
  145. 1440 printtab(12)"[152]copyright 1990":printtab(7)"compute! publications inc"
  146. 1450 printtab(10)"all rights reserved"
  147. 1460 poke198,.:wait198,1:getk$:c=val(k$):ifc<1orc>4goto1460
  148. 1470 p(2,2)=1:p(5,6)=2:ifc>2thenp(2,6)=3
  149. 1480 ifc>3thenp(5,2)=4
  150. 1490 ifc=1thencp=1:c=2
  151. 1500 print"[147][151]";:poke53281,6:poke53265,peek(53265)or64:forz=1to6
  152. 1510 print"  [220][255][255][255][255][170][255][255][255][255][170][255][255][255][255][170][255][255][255][255][170][255][255][255][255][170][255][255][255][255][170][255][255][255][255][223]"
  153. 1520 forj=1to3:print"  [219]    [146][219]    [146][219]    [146][219]    [146][219]    [146][219]    [146][219]    [146][219]":next
  154. 1530 next:print"  [175][255][255][255][255][171][255][255][255][255][171][255][255][255][255][171][255][255][255][255][171][255][255][255][255][171][255][255][255][255][171][255][255][255][255][174]";
  155. 1540 print"  [172][255][255][255][255][221][255][255][255][255][221][255][255][255][255][221][255][255][255][255][221][255][255][255][255][221][255][255][255][255][221][255][255][255][255][173]":forz=1to3
  156. 1550 printtab(8)"    "tab(28)"    ":next:print"":forz=1to3
  157. 1560 printtab(8)"    "tab(28)"    ":next
  158. 1570 pokev+1,.:pokev+7,.:pokev+9,.:pokev+2,92:pokev+3,95:pokev+4,252
  159. 1580 pokev+5,191:ifc>2thenpokev+6,252:pokev+7,95
  160. 1590 ifc>3thenpokev+8,92:pokev+9,191
  161. 1600 pokev+21,31:goto170
  162.