\START82\ \COMMENT=Program file dated 05/12/96, 18:03 \NAME=BOXES :prgmZRESET :Output(4,5,"DINOSOFT :Output(5,5,"PRESENTS :For(X,1,100 :End :ClrHome :Output(4,6,"\E\OXES! :For(X,16,6,\(-)\1 :Output(6,X,"B\@\ :For(A,1,15 :End :End :Output(6,7," :For(X,1,30 :End :Output(7,7,"\@\ :For(X,1,30 :End :Output(7,6,"\@\ :For(X,7,5,\(-)\1 :Output(X-1,6,"B :Output(X,6,"\@\ :Output(X+1,6," :For(A,1,15 :End :End :Pause :ClrHome :AxesOff :Lbl M :Menu("BOXES 1.0b","MOVE 'EM OUT!",A,"RESUME [A]",8,"QUIT",Q) :Lbl Q :prgmZRESET :Disp "(c)1995 DINOSOFT :Stop :Lbl A :Disp "START AT WHAT","LEVEL? :Input ">",L :Lbl 0 :\(-)\1\->\Z:1\->\\@\ :L\->\\L6\(1) :prgmZRESET :\L6\(1)\->\L :prgmZBOXLVLS :prgmZMATPRES :[B]\->\[A] :Lbl 8 :AxesOff :\L6\(1)\->\L :prgmZBOXLVLS :6\->\A :0\->\B :While A/6\<=\S :B+4\->\B :[A]((A/6),(B/4))\->\X :If X=1:Text(A,B,"X :If X=2:Text(A,B,"O :If X=3:Text(A,B,"E :If B/4=T:Then :A+6\->\A :0\->\B :End :End :\L5\(5)\->\A :\L5\(6)\->\B :0\->\[A]((A/6),(B/4)) :\L6\(1)\->\L :prgmZBOXLVLS : :\L5\(5)/6\->\I :\L5\(6)/4\->\J :Lbl 1 :While H\<>\3 :Lbl 2 :getKey\->\K :Text(D,E," :Text(A,B,"\@\ :A\->\D:B\->\E :[A]((A/6),(B/4)-1)\->\N :[A]((A/6),(B/4)+1)\->\O :[A]((A/6)-1,(B/4))\->\P :[A]((A/6)+1,(B/4))\->\Q :If K=24:B-4\->\B :If K=26:B+4\->\B :If K=25:A-6\->\A :If K=34:A+6\->\A : :If K=24 and N>0:Then :If N=1 or N=3:Then :B+4\->\B :Goto 2 :End :If N>0 and [A]((A/6),(B/4)-1)=1 or [A]((A/6),(B/4)-1)=2:B+4\->\B :If N=2:Then :0\->\[A]((A/6),(B/4)) :2\->\[A]((A/6),(B/4)-1) :Text(A,B-4,"O :0\->\[A](I,J) :End :End : :If K=26 and O>0:Then :If O=1 or O=3:Then :B-4\->\B :Goto 2 :End :If O>0 and [A]((A/6),(B/4)+1)=1 or [A]((A/6),(B/4)+1)=2:B-4\->\B :If O=2:Then :0\->\[A]((A/6),(B/4)) :2\->\[A]((A/6),(B/4)+1) :Text(A,B+4,"O :0\->\[A](I,J) :End :End : :If K=25 and P>0:Then :If P=1 or P=3:Then :A+6\->\A :Goto 2 :End :If P>0 and [A]((A/6)-1,(B/4))=1 or [A]((A/6)-1,(B/4))=2:A+6\->\A :If P=2:Then :0\->\[A]((A/6),(B/4)) :2\->\[A]((A/6)-1,(B/4)) :Text(A-6,B,"O :0\->\[A](I,J) :End :End : :If K=34 and Q>0:Then :If Q=1 or Q=3:Then :A-6\->\A :Goto 2 :End :If Q>0 and [A]((A/6)+1,(B/4))=1 or [A]((A/6)+1,(B/4))=2:A-6\->\A :If Q=2:Then :0\->\[A]((A/6),(B/4)) :2\->\[A]((A/6)+1,(B/4)) :Text(A+6,B,"O :0\->\[A](I,J) :End :End : :If K=21:Goto M :If K=105:Goto 9 :End : :Lbl 9 :3\->\[A](I,J) :prgmZBOXLVLS :6\->\A :0\->\B :While A/6\B :[A]((A/6),(B/4))\->\X :If X=2:Then :D\->\A:E\->\B :Goto 1 :End :If B/4=T:Then :A+6\->\A :0\->\B :End :End :L+1\->\L :ClrDraw :Goto 0 \STOP82\ \START82\ \NAME=COMPRESS :prgmZRESET :Lbl M :Menu("MATPRESS 1.0","COMPRESS",1,"DECOMPRESS",2,"QUIT",Q) :Lbl Q :prgmZRESET :Disp "(c)1995 DINOSOFT :Stop :Lbl 1 :1\->\Z :Goto 0 :Lbl 2 :\(-)\1\->\Z :Lbl 0 :prgmZMATPRES \STOP82\ \START82\ \NAME=EDITBLVL :prgmZRESET :AxesOff :Menu("BOXES EDITOR","NEW LEVEL",8,"EDIT LEVEL [A]",9,"QUIT",Q) :Lbl Q :Disp "(c)1995 DINOSOFT :prgmRESET :Stop :Lbl 8 :Disp "WIDTH OF LEVEL? :Disp "(1-22) :Input ">",T :Disp "LENGTH OF LEVEL? :Disp "(1-9) :Input ">",S :{S,T}\->\dim [A] :dim [A]\->\\L5\ :Fill(0,[A]) :Lbl 9 :6\->\dim \L5\ :\L5\(1)\->\S :\L5\(2)\->\T :ClrHome :Disp "ENTER 1 TO EDIT. :Disp "ENTER 2 TO QUIT. :Disp "ENTER 3 TO BORD. :Input ">",C :ClrHome :If C=3:Then :6\->\A :0\->\B :While A/6\<=\S :B+4\->\B :If A/6=S or A/6=1:1\->\[A]((A/6),(B/4)) :If B/4=T or B/4=1:1\->\[A]((A/6),(B/4)) :If B/4=T:Then :A+6\->\A :0\->\B :End :End :Goto 9 :End :If C=2:Goto 0 :6\->\A :0\->\B :While A/6\<=\S :B+4\->\B :[A]((A/6),(B/4))\->\X :If X=1:Text(A,B,"X :If X=2:Text(A,B,"O :If X=3:Text(A,B,"E :If B/4=T:Then :A+6\->\A :0\->\B :End :End : :0\->\X :6\->\A :4\->\B :While X\<>\1 :getKey\->\K :[A]((A/6),(B/4))\->\G :If G=1:Text(A,B,"X :If G=2:Text(A,B,"O :If G=3:Text(A,B,"E :If G=0:Text(A,B," :If K=0:Then :Text(A,B,"+ :End :If K=24:B-4\->\B :If K=26:B+4\->\B :If K=25:A-6\->\A :If K=34:A+6\->\A :If B/4>T:B-4\->\B :If B/4<1:B+4\->\B :If A/6>S:A-6\->\A :If A/6<1:A+6\->\A :If K=21:Then :1\->\[A]((A/6),(B/4)) :Text(A,B,"X :End :If K=31:Then :2\->\[A]((A/6),(B/4)) :Text(A,B,"O :End :If K=11:Then :3\->\[A]((A/6),(B/4)) :A\->\\L5\(5) :B\->\\L5\(6) :For(U,1,5) :Text(A,B,"E :End :End :If K=22:Then :0\->\[A]((A/6),(B/4)) :Text(A,B," :End :If K=23:Then :A\->\\L5\(3) :B\->\\L5\(4) :For(U,1,5) :Text(A,B,"S :End :End :If K=24 or K=25 or K=26 or K=34:Text(A,B,"+ :If K=105:Goto 9 :End :Lbl 0 :0\->\Z :Menu("SAVE?","RE-EDIT",9,"SAVE TO [B]",S,"QUIT",Q) :Lbl S :1\->\\@\:1\->\Z :prgmZMATPRES :2.2\->\Z :Lbl Q :prgmZRESET :If Z=2.2:Disp "LEVEL SAVED. :Disp "(c)1995 DINOSOFT \STOP82\ \START82\ \NAME=ZBOXLVLS :If L=1:Then :[[1050101,30101,1010202,10101,1010301,2010001,1060000,0,0,0]]\->\[B] :{5,5,12,16,24,8}\->\\L5\ :End :If L=2:Then :[[1080101,40101,3010101,1010003,2010002,1010101,10102,2010101,10101,10\#\ 10003][2010002,1030001,2010003,1010101,20101,30109,0,0,0,0]]\->\[B] :{8,8,36,20,12,28}\->\\L5\ :End :If L=3:Then :[[10108,10001,1010006,1010001,10101,10201,1010201,10102,10001,1010001]\#\ [2010002,2010101,20001,1020201,10201,10101,20001,1010001,2010001,101000\#\ 1][1050001,2010002,2010002,1010101,3010201,20201,30111,0,0,0]]\->\[B] :{9,10,12,32,48,8}\->\\L5\ :End :If L=4:Then :[[1060106,40101,10101,1040001,2010001,2010102,3010101,20102,10201,4010\#\ 1][20102,10104,10102,1020001,2010001,2010002,2010001,1020101,20201,1020\#\ 3][20101,1010008,1120000,0,0,0,0,0,0,0]]\->\[B] :{9,11,42,40,18,32}\->\\L5\ :End :If L=5:Then :[[1100102,30102,3010002,1010102,10201,10102,10101,10101,1020003,101000\#\ 1][2010002,1010001,1030201,40201,1020101,30101,2020001,2010001,1030008,\#\ 20110][0,0,0,0,0,0,0,0,0,0]]\->\[B] :{8,11,12,28,12,28}\->\\L5\ :End :If L=6:Then :[[50103,50106,3010106,1010011,1010101,10201,10201,10201,10201,10201][1\#\ 0103,10201,10201,10201,10201,10003,1010201,10201,10201,10201][10201,101\#\ 0001,10101,30201,10201,30101,10001,1010002,1050002,1010001][10104,30104\#\ ,0,0,0,0,0,0,0,0]]\->\[B] :{9,13,42,28,12,28}\->\\L5\ :End : :If L=7:Then :[[1090101,20101,40101,1010002,1010001,1010002,1010101,30201,30101,1010\#\ 001][1020201,1010002,1010101,20201,20201,10101,1010001,2010101,10101,10\#\ 102][1010002,2010003,3010110,0,0,0,0,0,0,0]]\->\[B] :{9,9,12,8,48,32}\->\\L5\ :End :If L=8:Then :[[1140101,120101,1010001,1020201,20201,30201,10101,1010001,1010002,101\#\ 0001][1020001,1020001,1010101,10101,20101,10101,10201,10101,10101,10100\#\ 01][1010002,1010001,1010003,1010001,1010101,10102,2010002,2010003,20100\#\ 01,1010101][110301,1150000,0,0,0,0,0,0,0,0]]\->\[B] :{9,14,30,16,48,52}\->\\L5\ :End :If L=9:Then :[[1110101,90101,1010009,1010101,10201,10201,10201,10201,10101,1010301]\#\ [1010301,1010301,1010301,1010301,1120000,0,0,0,0,0]]\->\[B] :{6,11,12,24,30,32}\->\\L5\ :End :If L=10:Then :[[1140101,100101,3010101,1010001,2010001,2010001,2010001,2010001,20100\#\ 02,1010101][20101,10201,10101,10201,10101,10101,1010001,2010001,2010001\#\ ,2010001][2010001,2010002,1010101,20101,10201,10101,10201,10101,10101,1\#\ 010001][2010001,2010001,2010001,2010001,2010002,1010101,3010101,80101,3\#\ 010115,0]]\->\[B] :{9,14,12,8,48,52}\->\\L5\ :End :\L5\(1)\->\S :\L5\(2)\->\T :\L5\(3)\->\A :\L5\(4)\->\B \STOP82\ \START82\ \NAME=ZMATPRES :If iPart Z=1:Goto 1 :If iPart Z=\(-)\1:Goto 2 :Lbl 1 :If \@\=1:Goto I :prgmZRESET :Disp "COMPRESS HOW","MUCH? :Disp "1=MAX 2=MIN :Input ">",P :Lbl I :dim [A]\->\\L1\ :\L1\(1)\->\S :\L1\(2)\->\T :If iPart Z=1:2\->\P :If Z=1.1:1\->\P :If P=1:Then :10000000000\->\Z :3\->\\@\ :End :If P=2:Then :1000000\->\Z :2\->\\@\ :End :ClrHome :Output(4,5,"PERCENT :Output(5,5,"DONE: :{S+1,T}\->\dim [A] :0\->\B :1\->\A:1\->\D :.01\->\X :Lbl A :iPart (A/S*50)\->\U :Output(5,11,U :For(B,1,T :[A](A,B)\->\C :A\->\I :B\->\J :If J=T:Then :I+1\->\I :1\->\J :End :If [A](I,J+1)=C:X+.01\->\X :If [A](I,J+1)\<>\C:Then :E+1\->\E :{D,T}\->\dim [B] :X+C\->\[B](D,E) :.01\->\X :If E=T:Then :0\->\E :D+1\->\D :End :End :End :A+1\->\A :If A\<>\S+1:Goto A :{S,T}\->\dim [A] :{1,1}\->\dim [A] :[B]\->\[A] :{D+2,T}\->\dim [A] :D+2\->\O :{1,1}\->\dim [B] :0\->\[B](1,1) :{1,10}\->\dim [B] :1\->\A:0\->\B :1\->\D:0\->\E :Lbl B :iPart (A/O*50+50)\->\U :Output(5,11,U :Z\->\R :E+1\->\E :For(N,1,\@\ :B+1\->\B :[A](A,B)\->\X :If B=T:Then :0\->\B :A+1\->\A :End :XR+[B](D,E)\->\[B](D,E) :R/10000\->\R :End :If E=10:Then :0\->\E :D+1\->\D :{D,10}\->\dim [B] :End :If A\<>\O:Goto B :Disp "DONE :{1,1}\->\dim [A] :Goto M : :XXXXXXXXXXXXXXXXXXXXXXXX : :Lbl 2 :If \@\=1:Goto J :prgmZRESET :Disp "ORIGINAL","DIMENSIONS? :Input "{?, }",S :Input "{ ,?}",T :Lbl J :0\->\A:0\->\B :ClrHome :Output(4,5,"PERCENT :Output(5,5,"DONE: :Output(5,11,M :If [B](1,1)>1\E\9 or [B](1,2)>1\E\9 :Then :1\->\P :Else :2\->\P :End :If P=1:Then :1\E\8\->\Z :3\->\\@\ :End :If P=2:Then :1\E\4\->\Z :2\->\\@\ :End :1\->\A :1\->\D :Lbl C :{1,T}\->\dim [A] :While ST\<>\AB :B+1\->\B :[B](A,B)\->\X :If B=10:Then :0\->\B :A+1\->\A :End :Z\->\R :iPart (A/S*100)\->\M :Output(5,11,M :For(P,1,\@\ :iPart (X/R)\->\Y :X/R-Y\->\X :Y/100\->\Y :XR\->\X :R/10000\->\R :If Y=0:Goto D :E+1\->\E :Y\->\[A](D,E) :If E=T:Then :0\->\E :D+1\->\D :{D,T}\->\dim [A] :End :End :End : :Lbl D :1\->\A:0\->\B :1\->\D:0\->\E:1\->\L :While L\<>\0 :B+1\->\B :[A](A,B)\->\X :X\->\L :If B=T:Then :0\->\B :A+1\->\A :End :iPart ((D/S)/2*100+50)\->\M :Output(5,11,M :If L=0:Goto F :fPart X\->\N :iPart X\->\X :N*100\->\N :For(K,1,N :E+1\->\E :{D,T}\->\dim [B] :X\->\[B](D,E) :If E=T:Then :0\->\E :D+1\->\D :End :End :End :Lbl F :Disp "DONE :Goto M :Lbl M \STOP82\ \START82\ \NAME=ZRESET :If \@\=6.18 :Goto 0 :ClrDraw :ClrTable :CoordOn :AxesOn :RectGC :GridOff :LabelOff :PlotsOff :\(-)\10\->\Xmin :\(-)\10\->\Ymin :10\->\Xmax :10\->\Ymax :1\->\Xscl :1\->\Yscl :Normal :Float :Degree :Func :Connected :Sequential :FullScreen :""\->\\Y1\ :""\->\\Y2\ :""\->\\Y3\ :""\->\\Y4\ :""\->\\Y5\ :""\->\\Y6\ :""\->\\Y7\ :""\->\\Y8\ :""\->\\Y9\ :""\->\\Y0\ :0\->\A :0\->\B :0\->\C :0\->\D :0\->\E :0\->\F :0\->\G :0\->\H :0\->\I :0\->\J :0\->\K :0\->\L :0\->\M :0\->\N :0\->\O :0\->\P :0\->\Q :0\->\R :0\->\S :0\->\T :0\->\U :0\->\V :0\->\W :0\->\X :0\->\Y :Param :"\->\\Y1t\ :"\->\\Y2t\ :"\->\\Y3t\ :"\->\\Y4t\ :"\->\\Y5t\ :"\->\\Y6t\ :"\->\\X1t\ :"\->\\X2t\ :"\->\\X3t\ :"\->\\X4t\ :"\->\\X5t\ :"\->\\X6t\ :Polar:"\->\\r1\ :"\->\\r2\ :"\->\\r3\ :"\->\\r4\ :"\->\\r5\ :Seq:"\->\\Un\ :"\->\\Vn\ :Func :ClrList\L1\,\L2\,\L3\,\L4\ :ClrHome :PlotsOff :Lbl 0 \STOP82\
© 1997 bckcoats@ix.netcom.com