home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Compute! Gazette 1990 May
/
1990-05.d64
/
isolation
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-09-20
|
6KB
|
162 lines
5 rem copyright 1990 compute! publications, inc. - all rights reserved
10 goto 1110
20 j=peek(56321+(p=2orp=3))and15
30 ifq=.thenif(peek(56321+(p=2orp=3))and16)=.thenreturn
40 ifqthenr=-(r=.):ifrtheno=b*32+31:z=o+o*(z=o):pokev+p*2+1,z
50 u=((jand4)=.)-((jand8)=.):h=((jand1)=.)-((jand2)=.)
60 ifu=.thenifh=.goto20
70 x=x+u:y=y+h:ifx<1orx>7thenx=-6*(x>7)+1:u=.
80 ify<1ory>6theny=-5*(y>6)+1:h=.
90 ifqthenreturn
100 pokev+21,peek(v+21)and254
110 ifx>6thenpokev+16,peek(v+16)or1:pokev,316-x*40:goto130
120 poke v+16,peek(v+16)and254:pokev,x*40+12
130 pokev+1,y*32+30:poke v+21,peek(v+21)or1:goto20
140 gosub 160
150 forz=1to12:pokes+24,.:forzz=1to3:next:pokes+24,15:next:return
160 forz=.to23:pokes+z,.:next:return
170 p=p+1:ifp>cthenp=1
180 ifw=c-1goto 1050
190 iflx(p)=9goto170
200 x=lx(p):y=ly(p):ifp=2andcp=1goto310
210 q=1:a=x:b=y
220 x=a:y=b:gosub20:ifx=aandy=bgoto220
230 ifs(y,x)=.goto220
240 ifp(y,x)>.goto220
250 ifx=.orx=8ory=.ory=7goto220
260 goto610
270 e=1:xs=x:ys=y:if(xs=2orxs=6)thenif(ys=2orys=5)thene=.:return
280 e=1:ifxs<1orxs>7orys<1orys>6thene=.:return
290 ifs(ys,xs)=.orp(ys,xs)>.thene=.
300 return
310 tr=.
320 tr=tr+1:at=.:iftr=5goto540
330 at=at+1:ifat=20goto320
340 xp=x+int(rnd(1)*3)-1:ifxp=xthenif(tr=1ortr=3)goto330
350 yp=y+int(rnd(1)*3)-1:ifyp=ythenif(tr=1ortr=3)goto330
360 ifyp<>ythenifxp<>xthenif(try=2ortry=4)goto 330
370 ifxp<1orxp>7oryp<1oryp>6goto330
380 ifs(yp,xp)=.orp(yp,xp)>.goto330
390 iftr>2goto600
400 sx=xp-x:sy=yp-y:iftr=2goto470
410 xs=x+2*sx:ys=y+2*sy:gosub280:ifegoto600
420 xs=x+sx:ys=y+2*sy:gosub280:ifegoto600
430 xs=x+2*sx:ys=y+sy:gosub280:ifegoto600
440 xs=x+2*sx:ys=y+1*sy:gosub280:ifegoto600
450 xs=x+1*sx:ys=y+2*sy:gosub280:ifegoto600
460 goto 330
470 ys=y+2*sy:xs=x-1:gosub280:ifegoto600
480 xs=x:gosub280:ifegoto600
490 xs=x+1:gosub280:ifegoto600
500 xs=x+2*xs:ys=y-1:gosub280:ifegoto600
510 ys=y:gosub280:ifegoto600
520 ys=y+1:gosub280:ifegoto600
530 goto330
540 z=-2
550 z=z+1:xs=x+z:ys=y-1:gosub280:ifegoto590
560 ys=y:ifzthengosub280:ifegoto590
570 ys=y+1:gosub280:ifegoto590
580 goto550
590 xp=xs:yp=ys
600 a=x:b=y:u=xp-x:h=yp-y:x=xp:y=yp
610 forz=1to8:o=a*40+12+z*5*u:on-(o>255)goto630
620 pokev+16,peek(v+16)and255-2*(int(p*p/2)-(p=1)):pokev+p*2,o:goto640
630 pokev+16,peek(v+16)or2*(int(p*p/2)-(p=1)):pokev+p*2,o-256
640 o=b*32+31+z*4*h:pokev+p*2+1,o:next
650 lx(p)=x:ly(p)=y:p(b,a)=.:p(y,x)=p
660 ifp=2andcp=1goto780
670 poke v+21,peek(v+21)and254:pokev+16,peek(v+16)and254
680 onpgoto690,700,710,720
690 x=2:y=2:pokev,92:pokev+1,94:goto730
700 x=6:y=5:pokev+1,190:pokev,252:goto730
710 x=6:y=2:pokev+1,94:pokev,252:goto730
720 x=2:y=5:pokev,92:pokev+1,190
730 pokev+21,31
740 q=.:gosub20:pokev+1,.:ifp(y,x)thengosub140:goto670
750 ifs(y,x)=.thengosub140:goto670
760 if(x=2orx=6)thenif(y=2ory=5)thengosub140:goto670
770 goto 880
780 z=.
790 z=z+1:ifz>8goto840
800 x=lx(1)+cx(z):iflx(1)>4thenx=lx(1)+cx(z)*-1
810 y=ly(1)+cy(z):ifly(1)>3theny=ly(1)+cy(z)*-1
820 gosub270:ifegoto880
830 goto790
840 y=1:x=.
850 x=x+1:ifx>7thenx=.:y=y+1
860 gosub270:ifegoto880
870 goto850
880 pokes+3,8:pokes+6,240:pokes+5,10:pokes+1,70:pokes+4,129:ps=52102+x*5+y*160
890 forz=.to2:o=ps+z*40:pokeo,224:pokeo+1,224:pokeo+2,224:pokeo+3,224:next
900 s(y,x)=.:forz=15to.step-.2:pokes+24,z:next
910 forz=1toc:ifz=pgoto940
920 iflx(z)=9thengoto940
930 gosub 950
940 next:z=p:gosub950:goto170
950 x=lx(z):y=ly(z):ifs(y+1,x)andp(y+1,x)=.goto1040
960 ifs(y-1,x)thenifp(y-1,x)=.goto1040
970 ifs(y,x+1)thenifp(y,x+1)=.goto1040
980 ifs(y,x-1)thenifp(y,x-1)=.goto1040
990 ifs(y+1,x+1)thenifp(y+1,x+1)=.goto1040
1000 ifs(y+1,x-1)thenifp(y+1,x-1)=.goto1040
1010 ifs(y-1,x+1)thenifp(y-1,x+1)=.goto1040
1020 ifs(y-1,x-1)thenifp(y-1,x-1)=.goto1040
1030 w=w+1:pokev+z*2+1,.:p(y,x)=.:lx(z)=9
1040 return
1050 gosub 160:n$="#4eueu":d$="***&*#"
1060 pokes+5,13:pokes+12,9:pokes+24,15:forz=1to6:n=asc(mid$(n$,z,1))+15
1070 d=asc(mid$(d$,z,1))-34:pokes+1,n:pokes+8,n/2:pokes+4,17:pokes+11,33
1080 forw=1to800/d:next:pokes+4,16:pokes+11,32:next:pokes+24,.
1090 poke198,.:wait198,1:pokev+21,.:print"[147]":poke53281,.
1100 poke53265,peek(53265)and191:goto1360
1110 print"[147]"chr$(142)chr$(8)
1120 poke88,.:poke89,232:poke90,.:poke91,216:poke781,9:poke782,1:poke56333,127
1130 poke1,51:sys41964:poke1,55:poke56333,129:poke56578,peek(56578)or3
1140 poke56576,peek(56576)and252:poke53272,(peek(53272)and63)or48:poke648,204
1150 poke53272,(peek(53272)and240)or8:print"[147]":poke 53280,6
1160 poke53281,.:poke 53282,1:poke 53283,14:poke 53284,.:z=rnd(-ti)
1170 printtab(11)"one moment please"
1180 data0,44,0,0,12,44,44,28,12,12,92,28,28,92,92,92,92,92
1190 data92,92,92,92,92,92,92,92,92,28,92,28,12,28,42,170,12,170
1200 data42,170,170,10,170,168,2,170,168,255,24,255,192,60,3,192,126,3
1210 data192,24,3,0,24,0,32,24,4,96,24,6,255,255,255,255,255,255,96,24,6
1220 data32,24,4,0,24,0,192,24,3,192,126,3,192,60,3,255,24,255
1230 forz=.to44:reada:poke59392+z,a:next:forz=45to62:poke59392+z,.:next
1240 forz=.to47:reada:poke59456+z,a:next:forz=48to62:poke59456+z,.:next
1250 v=53248:s=54272:gosub160
1260 poke53240,161:poke53241,160:poke53242,160:poke53243,160:poke53244,160
1270 pokev+39,1:pokev+40,7:pokev+41,13:pokev+42,3:pokev+43,15
1280 pokev+28,30:pokev+37,1:pokev+38,11
1290 forz=.to39:reada:poke57560+z,a:next:forz=.to47:reada:poke57680+z,a:next
1300 forz=1to8:readx:cx(z)=x:next:forz=1to8:ready:cy(z)=y:next
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
1320 data0,0,0,0,255,255,255,255,15,15,15,15,255,239,207,143,15,14,12,8,255,239
1330 data207,143,15,14,12,8,255,255,255,255,0,0,0,0,15,15,15,15,1,3,7,15,255
1340 data239,207,143,15,15,15,15,255,255,255,255,15,14,12,8,31,63,127,255
1350 data1,1,0,1,-1,0,-1,-1,1,0,1,-1,1,-1,0,-1
1360 fory=1to6:forx=1to7:p(y,x)=.:s(y,x)=1:next:next:lx(1)=2:ly(1)=2:lx(2)=6
1370 ly(2)=5:lx(3)=6:ly(3)=2:lx(4)=2:ly(4)=5:p=.:w=.:cp=.
1380 poke53265,peek(53265)and191:print"[147]":printtab(10)"[178]"
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]"
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]"
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]"
1420 print""tab(7)"[158]how many players? (1 to 4)"
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]"
1440 printtab(12)"[152]copyright 1990":printtab(7)"compute! publications inc"
1450 printtab(10)"all rights reserved"
1460 poke198,.:wait198,1:getk$:c=val(k$):ifc<1orc>4goto1460
1470 p(2,2)=1:p(5,6)=2:ifc>2thenp(2,6)=3
1480 ifc>3thenp(5,2)=4
1490 ifc=1thencp=1:c=2
1500 print"[147][151]";:poke53281,6:poke53265,peek(53265)or64:forz=1to6
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]"
1520 forj=1to3:print" [219] [146][219] [146][219] [146][219] [146][219] [146][219] [146][219] [146][219]":next
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]";
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
1550 printtab(8)" "tab(28)" ":next:print"":forz=1to3
1560 printtab(8)" "tab(28)" ":next
1570 pokev+1,.:pokev+7,.:pokev+9,.:pokev+2,92:pokev+3,95:pokev+4,252
1580 pokev+5,191:ifc>2thenpokev+6,252:pokev+7,95
1590 ifc>3thenpokev+8,92:pokev+9,191
1600 pokev+21,31:goto170