\START85\ \COMMENT=Program file dated 01/10/96, 18:19 \NAME=Maze \FILE=MAZE.85P :ClLCD :InpSt "Rebld maze to deflt? ",DEF :If DEF=="Y" :Goto INIT :Lbl GO :Menu(1,"NEW",NWG,2,"RESUME",RSTRTOLD) :Lbl NWG :MZ(1,1)\->\R :MZ(1,2)\->\C :MZ(1,3)\->\T :Goto LOAD :Lbl DRW :ClDrw :\(-)\2\->\xMin :(2/63)\->\\Delta-x\ :\(-)\2\->\yMin :2\->\yMax :AxesOff :FnOff :If A==1 :Then :For(X,\(-)\2,\(-)\.984,\Delta-x\) :Line(X,\(-)\X,X,X) :End :End :If B==1 :Then :For(X,\(-)\.984,.984,\Delta-x\) :Line(X,\(-)\1,X,1) :End :End :If D==1 :Then :For(X,.984,2,\Delta-x\) :Line(X,\(-)\X,X,X) :End :End :If E==1 :Then :For(X,\(-)\2,\(-)\.984,\Delta-x\) :Line(X,\(-)\1,X,1) :End :For(X,\(-)\.984,\(-)\.508,\Delta-x\) :Line(X,\(-)\X,X,X) :End :End :If F==1 :Then :For(X,.984,2,\Delta-x\) :Line(X,\(-)\1,X,1) :End :For(X,.508,.984,\Delta-x\) :Line(X,\(-)\X,X,X) :End :End :If G==1 :Then :For(X,\(-)\.508,\(-)\.254,\Delta-x\) :Line(X,\(-)\X,X,X) :End :For(X,\(-)\1.492,\(-)\.508,\Delta-x\) :Line(X,\(-)\.5,X,.5) :End :End :If H==1 :Then :For(X,\(-)\.508,.508,\Delta-x\) :Line(X,\(-)\.5,X,.5) :End :End :If I==1 :Then :For(X,.508,1.492,\Delta-x\) :Line(X,\(-)\.5,X,.5) :End :For(X,.254,.508,\Delta-x\) :Line(X,\(-)\X,X,X) :End :End :If PL==1 :Then :For(X,\(-)\2,1.492,\Delta-x\) :Line(X,\(-)\X/3,X,X/3) :End :End :If PR==1 :Then :For(X,1.492,2,\Delta-x\) :Line(X,\(-)\X/3,X,X/3) :End :End :If PPL==1 :Then :For(X,\(-)\1.492,0,\Delta-x\) :Line(X,\(-)\X/3,X,X/3) :End :For(X,\(-)\2,\(-)\1.492,\Delta-x\) :Line(X,\(-)\.5,X,.5) :End :End :If PPR==1 :Then :For(X,0,1.492,\Delta-x\) :Line(X,\(-)\X/3,X,X/3) :End :For(X,1.492,2,\Delta-x\) :Line(X,\(-)\.5,X,.5) :End :End :If DL==1 :Then :For(X,\(-)\.254,0,\Delta-x\) :Line(X,\(-)\X,X,X) :End :For(X,\(-)\.730,\(-)\.254,\Delta-x\) :Line(X,\(-)\.25,X,.25) :End :End :If DC==1 :Then :For(X,\(-)\.254,.254,\Delta-x\) :Line(X,\(-)\.25,X,.25) :End :End :If DR==1 :Then :For(X,0,.254,\Delta-x\) :Line(X,\(-)\X,X,X) :End :For(X,.254,.730,\Delta-x\) :Line(X,\(-)\.25,X,.25) :End :End :PtOn(0,\(-)\2) :Lbl LOOP :getKy\->\IKY :If IKY==15 :Then :R\->\RSV :C\->\CSV :T\->\TSV :AxesOn :FnOn :Stop :End :If IKY==25 :Then :T\->\X :Goto MOVE :End :If IKY==24 :Then :mod(T,4)+1\->\X :Goto MOVE :End :If IKY==34 :Then :mod((T+1),4)+1\->\X :Goto MOVE :End :If IKY==26 :Then :mod((T+2),4)+1\->\X :Goto MOVE :End :Goto LOOP :Lbl MOVE :If X==3 :Then :If MZ(R+1,C)==1 :Goto LOOP :0\->\A :0\->\B :0\->\D :0\->\E :0\->\F :0\->\G :0\->\H :0\->\I :0\->\PL :0\->\PR :0\->\PPL :0\->\PPR :0\->\DL :0\->\DC :0\->\DR :R+1\->\R :X\->\T :If R==3 or C==3 or R==15 or C==15 :Goto ND :If MZ(R,C-1)==1 :1\->\A :If MZ(R+1,C)==1 :1\->\B :If MZ(R,C+1)==1 :1\->\D :If MZ(R+1,C-1)==1 :1\->\E :If MZ(R+1,C+1)==1 :1\->\F :If MZ(R+2,C-1)==1 :1\->\G :If MZ(R+2,C)==1 :1\->\H :If MZ(R+2,C+1)==1 :1\->\I :If MZ(R+1,C-2)==1 :1\->\PL :If MZ(R+1,C+2)==1 :1\->\PR :If MZ(R+2,C-2)==1 :1\->\PPL :If MZ(R+2,C+2)==1 :1\->\PPR :If MZ(R+3,C-1)==1 :1\->\DL :If MZ(R+3,C)==1 :1\->\DC :If MZ(R+3,C+1)==1 :1\->\DR :Goto DRW :End :If X==4 :Then :If MZ(R,C-1)==1 :Goto LOOP :0\->\A :0\->\B :0\->\D :0\->\E :0\->\F :0\->\G :0\->\H :0\->\I :0\->\PL :0\->\PR :0\->\PPL :0\->\PPR :0\->\DL :0\->\DC :0\->\DR :C-1\->\C :X\->\T :If R==3 or C==3 or R==15 or C==15 :Goto ND :If MZ(R-1,C)==1 :1\->\A :If MZ(R,C-1)==1 :1\->\B :If MZ(R+1,C)==1 :1\->\D :If MZ(R-1,C-1)==1 :1\->\E :If MZ(R+1,C-1)==1 :1\->\F :If MZ(R-1,C-2)==1 :1\->\G :If MZ(R,C-2)==1 :1\->\H :If MZ(R+1,C-2)==1 :1\->\I :If MZ(R-2,C-1)==1 :1\->\PL :If MZ(R+2,C-1)==1 :1\->\PR :If MZ(R-2,C-2)==1 :1\->\PPL :If MZ(R+2,C-2)==1 :1\->\PPR :If MZ(R-1,C-3)==1 :1\->\DL :If MZ(R,C-3)==1 :1\->\DC :If MZ(R+1,C-3)==1 :1\->\DR :Goto DRW :End :If X==2 :Then :If MZ(R,C+1)==1 :Goto LOOP :0\->\A :0\->\B :0\->\D :0\->\E :0\->\F :0\->\G :0\->\H :0\->\I :0\->\PL :0\->\PR :0\->\PPL :0\->\PPR :0\->\DL :0\->\DC :0\->\DR :C+1\->\C :X\->\T :If R==3 or C==3 or R==15 or C==15 :Goto ND :If MZ(R+1,C)==1 :1\->\A :If MZ(R,C+1)==1 :1\->\B :If MZ(R-1,C)==1 :1\->\D :If MZ(R+1,C+1)==1 :1\->\E :If MZ(R-1,C+1)==1 :1\->\F :If MZ(R+1,C+2)==1 :1\->\G :If MZ(R,C+2)==1 :1\->\H :If MZ(R-1,C+2)==1 :1\->\I :If MZ(R+2,C+1)==1 :1\->\PL :If MZ(R-2,C+1)==1 :1\->\PR :If MZ(R+2,C+2)==1 :1\->\PPL :If MZ(R-2,C+2)==1 :1\->\PPR :If MZ(R+1,C+3)==1 :1\->\DL :If MZ(R,C+3)==1 :1\->\DC :If MZ(R-1,C+3)==1 :1\->\DR :Goto DRW :End :If X==1 :Then :If MZ(R-1,C)==1 :Goto LOOP :0\->\A :0\->\B :0\->\D :0\->\E :0\->\F :0\->\G :0\->\H :0\->\I :0\->\PL :0\->\PR :0\->\PPL :0\->\PPR :0\->\DL :0\->\DC :0\->\DR :R-1\->\R :X\->\T :If R==3 or C==3 or R==15 or C==15 :Goto ND :If MZ(R,C+1)==1 :1\->\A :If MZ(R-1,C)==1 :1\->\B :If MZ(R,C-1)==1 :1\->\D :If MZ(R-1,C+1)==1 :1\->\E :If MZ(R-1,C-1)==1 :1\->\F :If MZ(R-2,C+1)==1 :1\->\G :If MZ(R-2,C)==1 :1\->\H :If MZ(R-2,C-1)==1 :1\->\I :If MZ(R-1,C+2)==1 :1\->\PL :If MZ(R-1,C-2)==1 :1\->\PR :If MZ(R-2,C+2)==1 :1\->\PPL :If MZ(R-2,C-2)==1 :1\->\PPR :If MZ(R-3,C+1)==1 :1\->\DL :If MZ(R-3,C)==1 :1\->\DC :If MZ(R-3,C-1)==1 :1\->\DR :Goto DRW :End :Lbl ND :Disp "THE END" :Stop :Lbl INIT :[[9,9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1][1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\#\ ][1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1][1,1,1,0,0,0,0,1,0,1,1,0,0,0,1,1,1]\#\ [1,1,1,1,0,1,0,0,0,0,0,0,1,1,1,1,1][1,1,1,0,0,1,1,1,1,1,1,0,0,1,1,1,1][\#\ 1,1,1,0,1,1,1,1,0,0,0,1,0,0,0,1,1][1,1,1,0,0,0,0,1,0,1,0,1,1,1,1,1,1][1\#\ ,1,1,1,1,1,0,1,0,1,0,0,0,1,1,1,1][1,1,1,0,0,0,0,1,1,0,0,1,1,0,1,1,1][1,\#\ 1,1,1,0,1,0,0,0,0,1,1,0,0,1,1,1][1,1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,1][1,1\#\ ,1,0,1,0,0,0,1,1,1,0,1,1,1,1,1][1,1,1,1,1,0,1,0,0,0,1,0,1,1,1,1,1][1,1,\#\ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1][1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1][1,1,1\#\ ,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]\->\MZ :Goto GO :Lbl RSTRTOLD :RSV\->\R :CSV\->\C :TSV\->\T :Lbl LOAD :If T==3 :R-1\->\R :If T==4 :C+1\->\C :If T==2 :C-1\->\C :If T==1 :R+1\->\R :T\->\X :Goto MOVE \STOP85\