100 rem maze2d test 110 rem Michael Cassera 120 rem 130 rem copy characters from rom 140 poke52,48:poke56,48 145 cr=53248:nc=12288:ca=54272 148 poke53272,29 150 poke56334,peek(56334)and254 160 poke1,peek(1)and251 170 fori=0to2023:pokei+nc,peek(i+cr):nexti 180 poke1,peek(1)or4 190 poke56334,peek(56334)or1 195 forn=80to95:poke1024+n,n:poke1024+n+40,n+128:next 200 fori=640to767:reada:pokei+nc,a:pokei+nc+1024,255-a:nexti 210 printchr$(147) 215 poke53280,6:poke53281,6 220 forn=1064to1983:poken,95:poken+ca,12:next 230 forn=1025to1062:poken,82:poken+960,88:poken+ca,14:poken+ca+960,14:nextn 240 forn=1064to1983step40:poken,81:poken+39,84:poken+ca,14:poken+ca+39,14:nextn 250 rem start maze building 260 z=rnd(-ti):ss=49152 270 x=int(rnd(1)*38)+1:y=int(rnd(1)*22)+1 275 pokess,x:pokess+1,y:ss=ss+2 280 sb=1024+x+(y*40) 285 pokesb+ca,peek(sb+ca)+1 290 d$="" 300 ifpeek(sb+1)=95thend$=d$+"e" 310 ifpeek(sb+40)=95thend$=d$+"s" 320 ifpeek(sb-1)=95thend$=d$+"w" 330 ifpeek(sb-40)=95thend$=d$+"n" 340 d=len(d$):ifd=0then500 350 d2=int(rnd(1)*d)+1:m$=mid$(d$,d2,1) 360 ifm$="n"theny=y-1:cp=8:np=2:sd=-40 370 ifm$="s"theny=y+1:cp=2:np=8:sd=40 380 ifm$="e"thenx=x+1:cp=1:np=4:sd=1 390 ifm$="w"thenx=x-1:cp=4:np=1:sd=-1 400 ch=((peek(sb)-80)and(255-cp))+80 410 cj=((peek(sb+sd)-80)and(255-np))+80 420 pokesb,ch:pokesb+sd,cj 430 goto275 500 rem backtrack 510 ss=ss-2:ifss=49152then600 520 x=peek(ss):y=peek(ss+1) 530 goto280 600 rem we're done 602 x=peek(ss):y=peek(ss+1) 604 sb=1024+x+(y*40) 605 pokesb+ca,peek(sb+ca)+1 610 s1=int(rnd(1)*22)+1:s2=1024+(s1*40)+1 615 e1=int(rnd(1)*22)+1:e2=1024+(e1*40)+38 618 pokes2,((peek(s2)-80)and251)+80:pokes2-1,80 619 pokee2,((peek(e2)-80)and254)+80:pokee2+1,80 620 forn=0to5000:nextn 630 z=fre(0) 640 goto215 10000 data0,0,0,0,0,0,0,0 10010 data1,1,1,1,1,1,1,1 10020 data0,0,0,0,0,0,0,255 10030 data1,1,1,1,1,1,1,255 10040 data128,128,128,128,128,128,128,128 10050 data129,129,129,129,129,129,129,129 10060 data128,128,128,128,128,128,128,255 10070 data129,129,129,129,129,129,129,255 10080 data255,0,0,0,0,0,0,0 10090 data255,1,1,1,1,1,1,1 10100 data255,0,0,0,0,0,0,255 10110 data255,1,1,1,1,1,1,255 10120 data255,128,128,128,128,128,128,128 10130 data255,129,129,129,129,129,129,129 10140 data255,128,128,128,128,128,128,255 10150 data255,129,129,129,129,129,129,255