Boxes



\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


This page hosted by GeoCities Get your own Free Home Page


1