gregm@otc.otca.oz.au (Greg McFarlane) (01/11/91)
A real working model. See it walk the maze in front of your very own eyes. To prove that you can do anything in vi, I wrote a couple of macros that allows vi to solve mazes. It will solve any maze produced by maze.c that was posted to the net last month. (Maze.c is also included below.) Just follow this recipe and SEE FOR YOURSELF. 1. save this article and strip off all lines except those between the "cut here for vi macros" markers 2. run uudecode on the file to produce "maze.vi.macros" 3. if you haven't already done so, compile maze.c (cc -o maze maze.c) 4. run maze > maze.out and input a small number (for example 10 if you are on a fast machine, 3-5 if slow) which is the size of the maze to produce 5. edit the maze (vi maze.out) 6. include the macros with the vi command: :so maze.vi.macros 7. type the letter "g" (for "go") and watch vi solve the maze 8. when vi solves the maze, you will see why it lies Tested on a sparc, a sun and a pyramid (although maze.c will not compile on the pyramid). Any donations should be in unmarked small denomination bills :^)=. uuencoded maze.vi.macros: (note that the second last line (above "end") consists of a single space) ----------------- cut here for vi macros ---------------------- begin 664 maze.vi.macros M<V5T(')E;6%P"G-E="!N;VUA9VEC"FUA<"!G($E,"FUA<"!)($<_+@U>,D=1 M;&UA1UE*>DIE2D1*2U P4V!A"FUA<"!,(%%!;6%'3D(P33!%0&T-=UA@84!M M1U0D0B12,$TP14!M#69:8E-B6$=62C!(8&% <D!M50IM87 @52!,"FUA<"!1 M(")C>6P*;6%P($$@<D\*;6%P(%X@<E@*;6%P($X@0R]N&PIM87 @0B B<W * M;6%P($T@(FUY) IM87 @5"!#+W,;"FUA<"!2(")N< IM87 @4R B<WEL"FUA M<"!8(")M>70@"FUA<"!6(&%R&PIM87 @2B B8W *;6%P($@@(G)Y) IM87 @ M1B B;GEL"FUA<"!9(&]S02 @:R!%6B!S05\@;6T@0EH@<T(;"FUA<"!Z("1A M(&UM($=:('-"("!L;"!!6B!S0BX@;&P@05H@<T,@(&H@1UH@<T,N(&H@1UH- M<T-?(&UM($1:('-$&PIM87 @92 D82!M;2!%6B!S1"X@:&@@0UH@<T4N(&AH M($-:('-%&PIM87 @1" D82!M;2!&6B!S1B @:R!%6B!S1E\@;6T@05H-<T<N M(&QL($%:('-'("!L;"!!6B!S1QL*;6%P($L@)&$@;6T@2%H@<T@@(&H@1UH@ M<TA?(&UM($-:&PIM87 @4"!O;D$@:T8@;D(@;$8@;D,@1R1*1B!N1"!H1B!N F12!H1B!N1B!K1B!N1R!L1B!N2"!')$I&( U!&PIM87 @12!D) IN end ----------------- cut here for vi macros ---------------------- maze.c: (if using SysV or DOS replace the "27" on the last line by "11") credit to John Tromp (tromp@piring.cwi.nl) ----------------- cut here for maze.c ---------------------- char*M,A,Z,E=40,J[40],T[40];main(C){for(*J=A=scanf(M="%d",&C); -- E; J[ E] =T [E ]= E) printf("._"); for(;(A-=Z=!Z) || (printf("\n|" ) , A = 39 ,C -- ) ; Z || printf (M ))M[Z]=Z[A-(E =A[J-Z])&&!C & A == T[ A] |6<<27<rand()||!C&!Z?J[T[E]=T[A]]=E,J[T[A]=A-Z]=A,"_.":" |"];} ----------------- cut here for maze.c ---------------------- -- ACSnet: gregm@otc.otca.oz.au Greg McFarlane UUCP: {uunet,mcvax}!otc.otca.oz.au!gregm |||| OTC || Snail: OTC R&D GPO Box 7000, Sydney 2001, Australia Phone: +61 2 287 3139 Fax: +61 2 287 3299 $B%$%C%U(J $B%f!<(J $B%+%s(J $B%j!<%C%I(J $B%:%#%9(J $B!<(J $B%9%^%$%k(J
gregm@otc.otca.oz.au (Greg McFarlane) (01/14/91)
Thanks for all those who wrote to me about my maze-solving vi macros. To quote some of the reviews: "I was very impressed ..." "A-maze-ing!" "ABSOLUTELY THE GREATEST THING I'VE SEEN IN YEARS!" "it just flat blew me away" "AMAZING!!!!!!!!!!!!!!!!!!!!!!!!!!!" "Wow." (from rsalz@bbn.com him/herself) If you haven't already seen these amazing macros at work, you have another chance with this update. To get the correct ending message, ":set noterse" should be done. I have modified the macros below to do this. (This is probably not worth the effort.) Anyone who can't get the maze.c file to compile, get a new compiler. I have included a 5-line maze below for you. If you can compile it but the maze comes out looking like a fence and not a maze and you are using SysV or DOS replace the "27" on the last line by "11" If you try to figure out how the macros work and wimp out, I will send a commented version of the macros to anyone who mails me. By the way, I learnt about the power of vi macros from an item posted by Dave Hitz to comp.sources.misc: v02i057: vi macros simulate a Turing Machine. I recommend this to anyone interested in such trivia. What follows is a repeat of my previous posting, with ":set noterse" added to the macros, and with a maze to keep those with buggy compilers happy. ========================================================================= A real working model. See it walk the maze in front of your very own eyes. To prove that you can do anything in vi, I wrote a couple of macros that allows vi to solve mazes. It will solve any maze produced by maze.c that was posted to the net last month. (Maze.c is also included below.) Just follow this recipe and SEE FOR YOURSELF. 1. save this article and strip off all lines except those between the "cut here for vi macros" markers 2. run uudecode on the file to produce "maze.vi.macros" 3. if you haven't already done so, compile maze.c (cc -o maze maze.c) 4. run maze > maze.out and input a small number (for example 10 if you are on a fast machine, 3-5 if slow) which is the size of the maze to produce 5. edit the maze (vi maze.out) 6. include the macros with the vi command: :so maze.vi.macros 7. type the letter "g" (for "go") and watch vi solve the maze 8. when vi solves the maze, you will see why it lies Tested on a sparc, a sun and a pyramid (although maze.c will not compile on the pyramid). Any donations should be in unmarked small denomination bills :^)=. uuencoded maze.vi.macros: (note that the second last line (above "end") consists of a single space) ----------------- cut here for vi macros ---------------------- begin 664 maze.vi.macros M<V5T(')E;6%P"G-E="!N;VUA9VEC"G-E="!N;W1E<G-E"FUA<"!G($E,"FUA M<"!)($<_+@U>,D=1;&UA1UE*>DIE2D1*2U P4V!A"FUA<"!,(%%!;6%'3D(P M33!%0&T-=UA@84!M1U0D0B12,$TP14!M#69:8E-B6$=62C!(8&% <D!M50IM M87 @52!,"FUA<"!1(")C>6P*;6%P($$@<D\*;6%P(%X@<E@*;6%P($X@0R]N M&PIM87 @0B B<W *;6%P($T@(FUY) IM87 @5"!#+W,;"FUA<"!2(")N< IM M87 @4R B<WEL"FUA<"!8(")M>70@"FUA<"!6(&%R&PIM87 @2B B8W *;6%P M($@@(G)Y) IM87 @1B B;GEL"FUA<"!9(&]S02 @:R!%6B!S05\@;6T@0EH@ M<T(;"FUA<"!Z("1A(&UM($=:('-"("!L;"!!6B!S0BX@;&P@05H@<T,@(&H@ M1UH@<T,N(&H@1UH-<T-?(&UM($1:('-$&PIM87 @92 D82!M;2!%6B!S1"X@ M:&@@0UH@<T4N(&AH($-:('-%&PIM87 @1" D82!M;2!&6B!S1B @:R!%6B!S M1E\@;6T@05H-<T<N(&QL($%:('-'("!L;"!!6B!S1QL*;6%P($L@)&$@;6T@ M2%H@<T@@(&H@1UH@<TA?(&UM($-:&PIM87 @4"!O;D$@:T8@;D(@;$8@;D,@ M1R1*1B!N1"!H1B!N12!H1B!N1B!K1B!N1R!L1B!N2"!')$I&( U!&PIM87 @ %12!D) IN end ----------------- cut here for vi macros ---------------------- maze.c: (if using SysV or DOS replace the "27" on the last line by "11") credit to John Tromp (tromp@piring.cwi.nl) ----------------- cut here for maze.c ---------------------- char*M,A,Z,E=40,J[40],T[40];main(C){for(*J=A=scanf(M="%d",&C); -- E; J[ E] =T [E ]= E) printf("._"); for(;(A-=Z=!Z) || (printf("\n|" ) , A = 39 ,C -- ) ; Z || printf (M ))M[Z]=Z[A-(E =A[J-Z])&&!C & A == T[ A] |6<<27<rand()||!C&!Z?J[T[E]=T[A]]=E,J[T[A]=A-Z]=A,"_.":" |"];} ----------------- cut here for maze.c ---------------------- ----------------- cut here for maze.out (5-line maze) ------ ._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._ | ._| . . ._| | |_._._. . ._|_._._._._. ._|_. ._|_._. ._| | . ._|_. | . ._._. | | ._|_| |_. | | | | ._._|_._|_._. . |_. | | | ._._| |_._._._| | ._. ._| . . |_| |_._._._. | ._|_. ._._._. | | ._. |_._. . | ._._| |_. | . ._._._. |_. | |_|_| | | | . |_._| . ._._._| ._._. ._._| | | |_| . | |_. . ._|_|_| ._._. |_._|_| . | | |_._|_._._._|_._._._|_|_._._._|_._|_._._._|_._._._|_._._._._|_._._._._._._|_._| ----------------- cut here for maze.out (5-line maze) ------ -- ACSnet: gregm@otc.otca.oz.au Greg McFarlane UUCP: {uunet,mcvax}!otc.otca.oz.au!gregm |||| OTC || Snail: OTC R&D GPO Box 7000, Sydney 2001, Australia Phone: +61 2 287 3139 Fax: +61 2 287 3299 $B%$%C%U(J $B%f!<(J $B%+%s(J $B%j!<%C%I(J $B%:%#%9(J $B!<(J $B%9%^%$%k(J
moroney@ramblr.enet.dec.com (01/15/91)
I'll take your word that vi can solve the maze. But the real challange is, can you make vi convert the maze.c program from something that looks cute to something that actually compiles and runs? -Mike
antonyc@nntp-server.caltech.edu (Bill T. Cat) (01/15/91)
gregm@otc.otca.oz.au (Greg McFarlane) writes: >Anyone who can't get the maze.c file to compile, get a new compiler. i was playing with the maze.c thing, and the problem with it on most systems is that it is not ansi compatible. so, the nerd that i am, i fixed it for ansi. it's not quite as pretty, but hey, it works. char*M,A,Z,E=40,J[80],T[3];main(C){for(M=J+E,*J=A=scanf("%d",& C) ;-- E;J [E ]=M [E ]= E) printf("._"); for(;(A-=Z=!Z) || (printf("\n|" ) , A = 39 ,C -- ) ; Z || printf (T ))T[Z]=Z[A-(E =A[J-Z])&&!C & A == M[ A] |6<<11<rand()||!C&!Z?J[M[E]=M[A]]=E,J[M[A]=A-Z]=A,"_.":" |"];}
mitchell (Bill Mitchell) (01/15/91)
In article <1991Jan15.062435.22908@nntp-server.caltech.edu> antonyc@nntp-server.caltech.edu (Bill T. Cat) writes: >gregm@otc.otca.oz.au (Greg McFarlane) writes: > >>Anyone who can't get the maze.c file to compile, get a new compiler. > >i was playing with the maze.c thing, and the problem with it on >most systems is that it is not ansi compatible. so, the nerd that >i am, i fixed it for ansi. it's not quite as pretty, but hey, it works. > > > char*M,A,Z,E=40,J[80],T[3];main(C){for(M=J+E,*J=A=scanf("%d",& > C) ;-- E;J [E ]=M > [E ]= E) printf("._"); for(;(A-=Z=!Z) || (printf("\n|" > ) , A = 39 ,C -- > ) ; Z || printf (T ))T[Z]=Z[A-(E =A[J-Z])&&!C > & A == M[ A] > |6<<11<rand()||!C&!Z?J[M[E]=M[A]]=E,J[M[A]=A-Z]=A,"_.":" |"];} also, let's make the change between 27 and 11 (or whatever) automatic. |6<<8*sizeof(int)-5<rand()||!C&!Z?J[M[E]=M[A]]=E,J[M[A]=A-Z]=A,"_.":" |"];} I'll leave the cute reformatting to someone more artistic than I. -- mitchell@mdi.com (Bill Mitchell)
jc@mips.COM (J.C. Webber III) (01/16/91)
In article <1991Jan15.050521.12693@engage.enet.dec.com> moroney@ramblr.enet.dec.com writes: >I'll take your word that vi can solve the maze. But the real challange is, can >you make vi convert the maze.c program from something that looks cute to >something that actually compiles and runs? > >-Mike Wouldn't compile for me either. Complained about srand and drand I think.
flash@pyrtech.pyramid.com (Dean "Flash" Fashbaugh) (01/16/91)
In article <44914@mips.mips.COM> jc@mips.COM (J.C. Webber III) writes: > >Wouldn't compile for me either. Complained about srand and drand I think. Here's what I get: ================================================================= % cat maze.c char*M,A,Z,E=40,J[40],T[40];main(C){for(*J=A=scanf(M="%d",&C); -- E; J[ E] =T [E ]= E) printf("._"); for(;(A-=Z=!Z) || (printf("\n|" ) , A = 39 ,C -- ) ; Z || printf (M )) M[Z]=Z[A-(E =A[J-Z]) &&!C & A == T[ A] |6<<27<rand()||!C&!Z?J[T[E]=T[A]]=E,J[T[A]=A-Z]=A,"_.":" |"];} % cc maze.c -o maze "maze.c", line 5: non-integral subscript in array reference "maze.c", line 7: non-integral subscript in array reference ================================================================= I am only a novice C programmer and can't figure a way around this. (I tried a multitude of "things", after finding the "A-Z" in the subscript to be the culprit, but nothing worked....) They Call Me, /~~~~~~~/__ /\ _____ __ __ X Dean "Flash" Fashbaugh / /~~~~~ / / / \ \ __\ \ \__\ \ X Pyramid Technology Corp. / ~~~/ / / / /\ \ \___ \ \ ___ \ X 1295 Charleston Road / /~~~~ / /___ / ____ \ __\ \ \ \ \ \ X Mt. View, CA 94043 /_/ /_____//_/ \_\ \____\ \_\ \_\ X (415) 335-8201
ivan@megatest.UUCP (Ivan Batinic) (01/17/91)
First of all, the maze program does infact compile on a sun/3 under SunOS 3.5; if one manually cb's the source, one sees the pgm: char*M,A,Z,E=40,J[80],T[3]; main(C){ for(M=J+E,*J=A=scanf("%d",&C); --E;J[E] = M[E] = E) printf("._"); for(;(A -= Z = !Z) || (printf("\n|"), A = 39 ,C--); Z || printf (T)) T[Z] = Z[A - (E = A[J - Z]) && !C & A == M[A] | 6 << 11 < rand()|| !C &!Z ? J[M[E] = M[A]] = E, J[M[A] = A - Z] = A, "_." : " |"]; } The above is pure 'C'onfusion to hide the simplicity of the pgm. If you run it, and give it an integer input, it prints n times: ._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._ |_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._| | But the real joke that seems to be escaping some of you is the original form of the source: char*M,A,Z,E=40,J[80],T[3];main(C){for(M=J+E,*J=A=scanf("%d",& C) ;-- E;J [E ]=M [E ]= E) printf("._"); for(;(A-=Z=!Z) || (printf("\n|" ) , A = 39 ,C -- ) ; Z || printf (T ))T[Z]=Z[A-(E =A[J-Z])&&!C & A == M[ A] |6<<11<rand()||!C&!Z?J[M[E]=M[A]]=E,J[M[A]=A-Z]=A,"_.":" |"];} Which forms a maze if you look far away and squint your eyes. Therefore, the poster was not lying, it is a "Maze C-Program" in the truest possible way: a) It attempts to print a maze b) It looks like a maze in source c) Parsing the source is like solving a maze A true Maze program in form, structure and functionality -- Congrats to the author. I don't know who started this 'thread' on a source newsgroup, but do I win a prize? Ivan -- <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> Email: {sun,decwrl,fortune,pyramid}!megatest!ivan Disclaimer: All opinions expressed herein are my own, do not necessarily reflect those of my employer, and, are quite possibly worthless.
rwhite@nusdecs.uucp (0257014-Robert White(140)) (01/17/91)
In article <14885@sunspot.megatest.UUCP> ivan@sunspot.UUCP (Ivan Batinic) writes: > char*M,A,Z,E=40,J[80],T[3];main(C){for(M=J+E,*J=A=scanf("%d",& > C) ;-- E;J [E ]=M > [E ]= E) printf("._"); for(;(A-=Z=!Z) || (printf("\n|" > ) , A = 39 ,C -- > ) ; Z || printf (T ))T[Z]=Z[A-(E =A[J-Z])&&!C > & A == M[ A] > |6<<11<rand()||!C&!Z?J[M[E]=M[A]]=E,J[M[A]=A-Z]=A,"_.":" |"];} > > a) It attempts to print a maze > b) It looks like a maze in source > c) Parsing the source is like solving a maze d) The maze pathways spell the word "MAZE" ************ ************ ************* ************ *** ** *** ** ** ** **** *** **** ************** ************** ************* **** *** **** **** *** ** *** **** *** ***__******** ***__**************__************* Rob.
guido@cwi.nl (Guido van Rossum) (01/18/91)
ivan@megatest.UUCP (Ivan Batinic) writes: >Therefore, the poster was not lying, it is a "Maze C-Program" in the >truest possible way: > a) It attempts to print a maze > b) It looks like a maze in source > c) Parsing the source is like solving a maze For me it really prints a maze. Seems to depend on how random your rand() really is though. Also note that if you squint you not only see *a* maze, you can also see the word MAZE spelled out in huge letters! Amazing, yes. --Guido
allbery@NCoast.ORG (Brandon S. Allbery KB8JRR) (01/21/91)
As quoted from <44914@mips.mips.COM> by jc@mips.COM (J.C. Webber III): +--------------- | In article <1991Jan15.050521.12693@engage.enet.dec.com> moroney@ramblr.enet.dec.com writes: | >you make vi convert the maze.c program from something that looks cute to | >something that actually compiles and runs? | | Wouldn't compile for me either. Complained about srand and drand I think. +--------------- I had no problem compiling --- but vi did *not* solve the maze, it just inserted a lot of lines of gobbledygook into the buffer. SVR3.1 vi, no .exrc or $EXINIT. ++Brandon -- Me: Brandon S. Allbery VHF/UHF: KB8JRR on 220, 2m, 440 Internet: allbery@NCoast.ORG Packet: KB8JRR @ WA8BXN America OnLine: KB8JRR AMPR: KB8JRR.AmPR.ORG [44.70.4.88] uunet!usenet.ins.cwru.edu!ncoast!allbery Delphi: ALLBERY
allbery@NCoast.ORG (Brandon S. Allbery KB8JRR) (01/21/91)
As quoted from <1991Jan15.152101.2935@mdivax1.uucp> by : +--------------- | also, let's make the change between 27 and 11 (or whatever) automatic. | | |6<<8*sizeof(int)-5<rand()||!C&!Z?J[M[E]=M[A]]=E,J[M[A]=A-Z]=A,"_.":" |"];} +--------------- It's not conditional on sizeof (int), it's conditional on the number of bits returned by rand(). On my SVR3.1 at work, we have 32-bit ints, but rand() only returns 15 random bits. ++Brandon -- Me: Brandon S. Allbery VHF/UHF: KB8JRR on 220, 2m, 440 Internet: allbery@NCoast.ORG Packet: KB8JRR @ WA8BXN America OnLine: KB8JRR AMPR: KB8JRR.AmPR.ORG [44.70.4.88] uunet!usenet.ins.cwru.edu!ncoast!allbery Delphi: ALLBERY
rcm@hpctdpa.HP.COM (Rick Myers) (01/24/91)
>+--------------- >| In article <1991Jan15.050521.12693@engage.enet.dec.com> moroney@ramblr.enet.dec.com writes: >| >you make vi convert the maze.c program from something that looks cute to >| >something that actually compiles and runs? >| >| Wouldn't compile for me either. Complained about srand and drand I think. >+--------------- > >I had no problem compiling --- but vi did *not* solve the maze, it just >inserted a lot of lines of gobbledygook into the buffer. SVR3.1 vi, no >.exrc or $EXINIT. > >++Brandon ---------- On my HP9000s800 it compiled and ran fine. Also, vi solved the maze and LIED ABOUT IT! Rick rcm@hpctdpe.col.hp.com
gregm@otc.otca.oz.au (Greg McFarlane) (02/11/91)
Submitted-by: gregm@otc.otca.oz.au
Archive-name: maze_solving_vi_macros
A real working model. See it walk the maze in front of your very own eyes.
To prove that you can do anything in vi, I wrote a couple of macros that
allows vi to solve mazes. It will solve any maze produced by maze.c
that was posted to the alt.sources last month. (Maze.c is also included
in this posting as well as an example of its output.)
The uncommented version of the macros was sent to alt.sources last month.
However, so many people mailed me requesting the commented version of the
macros that I decided to post it. I have made some modifications to the
original macros to make them easier to follow and also after I learnt
that you can escape the special meaning of '|' in macros by using '^V|'.
Save this article and unshar it. Then read maze.README.
After studying these macros, anyone who cannot write an emacs emulator
in vi macros should just curl up and :q!.
Coming soon to a newsgroup near you: "Vi macros solve Tower of Hanoi",
and a repost of the original "Turing Machine implemented in Vi macros"
Anyone who has a version of these macros for edlin or nroff, please post.
---- Cut Here and unpack ----
#!/bin/sh
# This is maze_solving_vi_macros, a shell archive (shar 3.32)
# made 02/07/1991 14:24 UTC by gregm@otc.otca.oz.au
# Source directory /n/arrakis/u/sysdev/gregm/vi.macros
#
# existing files will NOT be overwritten
#
# This shar contains:
# length mode name
# ------ ---------- ------------------------------------------
# 1666 -rw-rw-r-- maze.README
# 16793 -rw-rw-r-- maze.vi.macros.uu
# 481 -rw-rw-r-- maze.out
# 441 -rw-rw-r-- maze.c
# 441 -rw-rw-r-- maze.ansi.c
#
if touch 2>&1 | fgrep 'amc' > /dev/null
then TOUCH=touch
else TOUCH=true
fi
# ============= maze.README ==============
if test X"$1" != X"-c" -a -f 'maze.README'; then
echo "File already exists: skipping 'maze.README'"
else
echo "x - extracting maze.README (Text)"
sed 's/^X//' << 'SHAR_EOF' > maze.README &&
XTo prove that you can do anything in vi, I wrote a couple of macros that
Xallows vi to solve mazes. It will solve any maze produced by maze.c
Xthat was posted to the net recently.
X
XJust follow this recipe and SEE FOR YOURSELF.
X 1. run uudecode on the file "maze.vi.macros.uu" to
X produce the file "maze.vi.macros"
X (If you can't wait to see the action, jump to step 4)
X 2. compile maze.c with "cc -o maze maze.c"
X 3. run maze > maze.out and input a small number (for example 10 if
X you are on a fast machine, 3-5 if slow) which
X is the size of the maze to produce
X 4. edit the maze (vi maze.out)
X 5. include the macros with the vi command:
X :so maze.vi.macros
X 6. type the letter "g" (for "go") and watch vi solve the maze
X 7. when vi solves the maze, you will see why it lies
X 8. now look at maze.vi.macros and all will be revealed
X
XTested on a sparc, a sun and a pyramid (although maze.c will not compile
Xon the pyramid).
X
XAnyone who can't get the maze.c file to compile, get a new compiler,
Xtry maze.ansi.c which was also posted to the net.
XIf you can get it to compile but the maze comes out looking like a fence
Xand not a maze and you are using SysV or DOS replace the "27" on the
Xlast line of maze.c by "11"
XThanks to John Tromp (tromp@piring.cwi.nl) for maze.c.
XThanks to antonyc@nntp-server.caltech.edu (Bill T. Cat) for maze.ansi.c.
X
XAny donations should be in unmarked small denomination bills :^)=.
X
X ACSnet: gregm@otc.otca.oz.au
XGreg McFarlane UUCP: {uunet,mcvax}!otc.otca.oz.au!gregm
X|||| OTC || Snail: OTC R&D GPO Box 7000, Sydney 2001, Australia
X Phone: +61 2 287 3139 Fax: +61 2 287 3299
X
X
SHAR_EOF
$TOUCH -am 0208005691 maze.README &&
chmod 0664 maze.README ||
echo "restore of maze.README failed"
set `wc -c maze.README`;Wc_c=$1
if test "$Wc_c" != "1666"; then
echo original size 1666, current size $Wc_c
fi
fi
# ============= maze.vi.macros.uu ==============
if test X"$1" != X"-c" -a -f 'maze.vi.macros.uu'; then
echo "File already exists: skipping 'maze.vi.macros.uu'"
else
echo "x - extracting maze.vi.macros.uu (Text)"
sed 's/^X//' << 'SHAR_EOF' > maze.vi.macros.uu &&
Xbegin 664 maze.vi.macros
XM(B!4:&5S92!M86-R;W,@)W-O;'9E)R!A;GD@;6%Z92!P<F]D=6-E9"!B>2!T
XM:&4@82UM87IE+6EN9R!M87IE+F,@<')O9W)A;2X*(B *(B!&:7)S="P@82!B
XM:70@;V8@;6%Z92!T:&5O<GDN"B(@268@>6]U('=E<F4@<'5T(&EN=&\@82!M
XM87IE+"!A(&=U87)A;G1E960@;65T:&]D(&]F(&9I;F1I;F<@>6]U<B!W87D*
XM(B!O=70@;V8@=&AE(&UA>F4@:7,@=&\@<'5T('EO=7(@;&5F="!H86YD(&]N
XM=&\@82!W86QL(&%N9"!J=7-T(&ME97 @=V%L:VEN9RP*(B!N979E<B!T86MI
XM;F<@>6]U<B!H86YD(&]F9B!T:&4@=V%L;"X@5&AI<R!T96-H;FEQ=64@:7,@
XM;VYL>2!G=6%R86YT965D('1O"B(@=V]R:R!I9B!T:&4@;6%Z92!D;V5S(&YO
XM="!H879E(&%N>2 G:7-L86YD<R<L(&]R(&EF('1H92 G97AI="<@:7,@;VX@
XM=&AE"B(@<V%M92!I<VQA;F0@87,@>6]U<B!S=&%R=&EN9R!P;VEN="X@5&AE
XM<V4@8V]N9&ET:6]N<R!H;VQD(&9O<B!T:&4@;6%Z97,*(B!U;F1E<B!C;VYS
XM:61E<F%T:6]N+@HB( HB($%S<W5M:6YG('1H870@=&AE(&UA>F4@:7,@;6%D
XM92!U<"!O9B!H;W)I>F]N=&%L(&%N9"!V97)T:6-A;"!W86QL<R!S<&%C960*
XM(B!O;F4@<W1E<"!A<&%R="!A;F0@=&AA="!Y;W4@8V%N(&UO=F4@96ET:&5R
XM(&YO<G1H+"!S;W5T:"P@96%S="!O<B!W97-T+ HB('1H96X@>6]U(&-A;B!A
XM=71O;6%T92!T:&ES('!R;V-E9'5R92!B>2!C87)R>6EN9R!O=70@=&AE(&9O
XM;&QO=VEN9R!S=&5P<RX*(B *(B Q+B!0=70@>6]U<G-E;&8@<V]M97=H97)E
XM(&EN('1H92!M87IE(&YE87(@82!W86QL+@HB(#(N($-H96-K(&EF('EO=2!H
XM879E(&$@=V%L;"!O;B!Y;W5R(&QE9G0N($EF('-O+"!G;R!T;R!S=&5P(#0N
XM"B(@,RX@5&AE<F4@:7,@;F\@=V%L;"!O;B!Y;W5R(&QE9G0L('-O('1U<FX@
XM;VX@=&AE('-P;W0@=&\@>6]U<B!L969T(&%N9"!S=&5P"B(@(" @9F]R=V%R
XM9"!B>2!O;F4@<W1E<"!A;F0@<F5P96%T('-T97 @,BX*(B T+B!#:&5C:R!W
XM:&%T(&ES(&1I<F5C=&QY(&EN(&9R;VYT(&]F('EO=2X@268@:70@:7,@82!W
XM86QL+"!T=7)N(&]N('1H90HB(" @('-P;W0@=&\@>6]U<B!R:6=H="!B>2 Y
XM,"!D96=R965S(&%N9"!R97!E870@<W1E<" T+@HB(#4N(%1H97)E(&ES(&YO
XM('=A;&P@:6X@9G)O;G0@;V8@>6]U+"!S;R!S=&5P(&9O<G=A<F0@;VYE('-T
XM97 @86YD"B(@(" @9V\@=&\@<W1E<" R+@HB( HB($EN('1H:7,@=V%Y('EO
XM=2!W:6QL(&-O=F5R(&%L;"!T:&4@8V]R<FED;W)S(&]F('1H92!M87IE("AU
XM;G1I;"!Y;W4@9V5T(&)A8VL*(B!T;R!W:&5R92!Y;W4@<W1A<G1E9"!F<F]M
XM+"!I9B!Y;W4@9&\@;F]T('-T;W I+@HB( HB($)Y(&5X86UI;FEN9R!A(&UA
XM>F4@<')O9'5C960@8GD@=&AE(&UA>F4N8R!P<F]G<F%M('EO=2!W:6QL('-E
XM92!T:&%T( HB(&5A8V@@<W%U87)E(&]F('1H92!M87IE(&ES(&]N92!C:&%R
XM86-T97(@:&EG:"!A;F0@='=O(&-H87)A8W1E<G,@=VED92X*(B!4;R!G;R!N
XM;W)T:"!O<B!S;W5T:"P@>6]U(&UO=F4@8GD@82!O;F4@8VAA<F%C=&5R('-T
XM97 L(&)U="!T;R!M;W9E(&5A<W0@;W(*(B!W97-T('EO=2!M;W9E(&)Y(&$@
XM='=O(&-H87)A8W1E<B!S=&5P+B!!;'-O(&YO=&4@=&AA="!I;B!A;GD@<&]S
XM:71I;VX*(B!T:&5R92!A<F4@9F]U<B!P;&%C97,@=VAE<F4@=V%L;',@8V]U
XM;&0@8F4@<'5T("T@=&\@=&AE(&YO<G1H+"!T;R!T:&4@<V]U=&@L"B(@=&\@
XM=&AE(&5A<W0@86YD('1O('1H92!W97-T+@HB($$@=V%L;"!E>&ES=',@=&\@
XM=&AE(&YO<G1H(&]F('EO=2!I9B!T:&4@8VAA<F%C=&5R('1O('1H92!N;W)T
XM:"!O9@HB('EO=2!I<R!A(%\@*&]T:&5R=VES92!I="!I<R!A('-P86-E*2X*
XM(B!!('=A;&P@97AI<W1S('1O('1H92!E87-T(&]F('EO=2!I9B!T:&4@8VAA
XM<F%C=&5R('1O('1H92!E87-T(&]F('EO=0HB(&ES(&$@?" H;W1H97)W:7-E
XM(&ET(&ES(&$@+BDN"B(@02!W86QL(&5X:7-T<R!T;R!T:&4@=V5S="!O9B!Y
XM;W4@:68@=&AE(&-H87)A8W1E<B!T;R!T:&4@=V5S="!O9B!Y;W4*(B!I<R!A
XM('P@*&]T:&5R=VES92!I="!I<R!A("XI+@HB($$@=V%L;"!E>&ES=',@=&\@
XM=&AE('-O=71H(&]F('EO=2!I9B!T:&4@8VAA<F%C=&5R('=H97)E('EO=2!A
XM<F4*(B!I<R!A(%\@*&]T:&5R=VES92!I="!I<R!A('-P86-E*2X*(B *(B!.
XM;W1E('1H92!D:69F97)E;F-E(&9O<B!D:7)E8W1I;VX@<V]U=&@L('=H97)E
XM('=E(&UU<W0@97AA;6EN92!T:&4@8VAA<F%C=&5R"B(@=VAE<F4@=&AE(&-U
XM<G-O<B!I<R!R871H97(@=&AA;B!A;B!A9&IA8V5N="!C96QL+@HB( HB($EF
XM('EO=2!W97)E(&EM<&QE;65N=&EN9R!T:&4@86)O=F4@<')O8V5D=7)E(&ES
XM(&$@;F]R;6%L(&-O;7!U=&5R(&QA;F=U86=E"B(@>6]U(&-O=6QD('5S92!A
XM(&QO;W @=VET:"!I9B!S=&%T96UE;G1S(&%N9"!C;VYT:6YU92!S=&%T96UE
XM;G1S+" *(B!(;W=E=F5R+"!T:&5S92!C;VYS=')U8W1S(&%R92!N;W0@879A
XM:6QA8FQE(&EN('9I(&UA8W)O<R!S;R!)(&AA=F4@=7-E9 HB(&$@<W1A=&4@
XM;6%C:&EN92!W:71H(#@@<W1A=&5S+B!%86-H('-T871E('-I9VYI9FEE<R!T
XM:&4@9&ER96-T:6]N('EO=0HB(&%R92!G;VEN9R!I;B!A;F0@=VAE=&AE<B!O
XM<B!N;W0@>6]U(&AA=F4@8VAE8VME9"!I9B!T:&5R92!I<R!A('=A;&P@;VX*
XM(B!Y;W5R(&QE9G0N"B(@"B(@5&AE('1R86YS:71I;VX@9G)O;2!S=&%T92!T
XM;R!S=&%T92!A;F0@=&AE(&%C=&EO;G,@=&%K96X@;VX@96%C:"!T<F%N<VET
XM:6]N"B(@87)E(&=I=F5N(&EN('1H92!S=&%T92!T86)L92!B96QO=RX*(B!4
XM:&4@;F%M97,@;V8@=&AE('-T871E<R!A<F4@3C$L($XR+"!3,2P@4S(L($4Q
XM+"!%,BP@5S$L(%<R+"!W:&5R92!E86-H(&QE='1E<@HB('-T86YD<R!F;W(@
XM82!D:7)E8W1I;VX@;V8@=&AE(&-O;7!A<W,L('1H92!N=6UB97(@,2!I;F1I
XM8V%T97,@=&AA="!T:&4@=V4*(B!H879E(&YO="!Y970@8VAE8VME9"!T;R!S
XM964@:68@=&AE<F4@:7,@82!W86QL(&]N(&]U<B!L969T(&%N9"!T:&4@;G5M
XM8F5R(#(*(B!I;F1I8V%T97,@=&AA="!W92!H879E(&-H96-K960@86YD('1H
XM97)E(&ES(&$@=V%L;"!O;B!O=7(@;&5F="X*(B *(B!&;W(@96%C:"!S=&%T
XM92!W92!M=7-T(&-O;G-I9&5R('1H92!E>&ES=&5N8V4@;W(@;F]T(&]F(&$@
XM=V%L;"!I;B!A"B(@<&%R=&EC=6QA<B!D:7)E8W1I;VXN(%1H:7,@9&ER96-T
XM:6]N(&ES(&=I=F5N(&EN('1H92!F;VQL;W=I;F<@=&%B;&4N"B(@"B(@3F5X
XM=$-H87(@=&%B;&4Z"B(@<W1A=&4@(" @(" @(&1I<F5C=&EO;B @(" @("!V
XM:2!C;VUM86YD<PHB("!.,2 @(" @(" @(" @(" @5R @(" @(" @(" @(" @
XM(&A&"B(@($XR(" @(" @(" @(" @("!.(" @(" @(" @(" @(" @:T8*(B @
XM4S$@(" @(" @(" @(" @($4@(" @(" @(" @(" @("!L1@HB("!3,B @(" @
XM(" @(" @(" @4R @(" @(" @(" @(" @($8*(B @13$@(" @(" @(" @(" @
XM($X@(" @(" @(" @(" @("!K1@HB("!%,B @(" @(" @(" @(" @12 @(" @
XM(" @(" @(" @(&Q&"B(@(%<Q(" @(" @(" @(" @("!3(" @(" @(" @(" @
XM(" @1@HB("!7,B @(" @(" @(" @(" @5R @(" @(" @(" @(" @(&A&"B(@
XM"B(@=VAE<F4@1B!I<R!A(&UA8W)O('=H:6-H('EA;FMS('1H92!C:&%R86-T
XM97(@=6YD97(@=&AE(&-U<G-O<B!I;G1O"B(@=&AE($YE>'1#:&%R(')E9VES
XM=&5R("AN*2X*(B *(B!3=&%T92!T86)L93H*(B!);B!T:&4@)W9I(&-O;6UA
XM;F1S)R!C;VQU;6X@:7,@9VEV96X@=&AE(&%C=&EO;G,@=&\@8V%R<GD@;W5T
XM('=H96X@:6X*(B!T:&ES('-T871E(&%N9"!T:&4@3F5X=$-H87(@:7,@87,@
XM9VEV96XN(%1H92!C;VUM86YD<R!K+"!J+"!L;"P@:&@@;6]V90HB('1H92!C
XM=7)R96YT('!O<VET:6]N(&YO<G1H+"!S;W5T:"P@96%S="!A;F0@=V5S="!R
XM97-P96-T:79E;'DN(%1H90HB(&-O;6UA;F0@;6T@:7,@=7-E9"!A<R!A(&YO
XM+6]P(&-O;6UA;F0N"B(@26X@=&AE("=N97AT('-T871E)R!C;VQU;6X@:7,@
XM9VEV96X@=&AE(&YE=R!S=&%T92!O9B!T:&4@;6%C:&EN92!A9G1E<@HB('1H
XM92!A8W1I;VX@:7,@8V%R<FEE9"!O=70N"B(@"B(@8W5R<F5N="!S=&%T92 @
XM(" @(" @3F5X=$-H87(@(" @=FD@8V]M;6%N9',@(&YE>'0@<W1A=&4*(B @
XM(" @($XQ(" @(" @(" @(" @(" @(" N(" @(" @(" @(" @:&@@(" @(" @
XM(" @5S$*(B @(" @($XQ(" @(" @(" @(" @(" @("!\(" @(" @(" @(" @
XM;6T@(" @(" @(" @3C(*(B @(" @($XR(" @(" @(" @(" @(" @("!?(" @
XM(" @(" @(" @;6T@(" @(" @(" @13$*(B @(" @($XR(" @(" @(" @(" @
XM(" @<W!A8V4@(" @(" @(" @:R @(" @(" @(" @3C$*(B @(" @(%,Q(" @
XM(" @(" @(" @(" @(" N(" @(" @(" @(" @;&P@(" @(" @(" @13$*(B @
XM(" @(%,Q(" @(" @(" @(" @(" @("!\(" @(" @(" @(" @;6T@(" @(" @
XM(" @4S(*(B @(" @(%,R(" @(" @(" @(" @(" @("!?(" @(" @(" @(" @
XM;6T@(" @(" @(" @5S$*(B @(" @(%,R(" @(" @(" @(" @(" @<W!A8V4@
XM(" @(" @(" @:B @(" @(" @(" @4S$*(B @(" @($4Q(" @(" @(" @(" @
XM(" @<W!A8V4@(" @(" @(" @:R @(" @(" @(" @3C$*(B @(" @($4Q(" @
XM(" @(" @(" @(" @("!?(" @(" @(" @(" @;6T@(" @(" @(" @13(*(B @
XM(" @($4R(" @(" @(" @(" @(" @("!\(" @(" @(" @(" @;6T@(" @(" @
XM(" @4S$*(B @(" @($4R(" @(" @(" @(" @(" @(" N(" @(" @(" @(" @
XM;&P@(" @(" @(" @13$*(B @(" @(%<Q(" @(" @(" @(" @(" @<W!A8V4@
XM(" @(" @(" @:B @(" @(" @(" @4S$*(B @(" @(%<Q(" @(" @(" @(" @
XM(" @("!?(" @(" @(" @(" @;6T@(" @(" @(" @5S(*(B @(" @(%<R(" @
XM(" @(" @(" @(" @("!\(" @(" @(" @(" @;6T@(" @(" @(" @3C$*(B @
XM(" @(%<R(" @(" @(" @(" @(" @(" N(" @(" @(" @(" @:&@@(" @(" @
XM(" @5S$*(@HB( HB($-O;7!L86EN="!A8F]U="!V:2!M86-R;W,Z"B(@270@
XM<V5E;7,@=&AA="!Y;W4@8V%N;F]T(&AA=F4@;6]R92!T:&%N(&]N92 G=6YD
XM;RUA8FQE)R!V:2!C;VUM86YD"B(@:6X@=&AE(&]N92!M86-R;RP@<V\@>6]U
XM(&AA=F4@=&\@;6%K92!L;W1S(&]F(&QI='1L92!M86-R;W,@86YD"B(@<'5T
XM('1H96T@=&]G971H97(N"B(*(B!))VQL(&5X<&QA:6X@=VAA="!)(&UE86X@
XM8GD@86X@97AA;7!L92X@161I="!A(&9I;&4@86YD"B(@='EP92 G.FUA<"!1
XM(')862<N(%1H:7,@<VAO=6QD(&UA<"!T:&4@42!K97D@=&\@)W)E<&QA8V4@
XM=&AE"B(@8VAA<F%C=&5R('5N9&5R('1H92!C=7)S;W(@=VET:"!8(&%N9"!Y
XM86YK('1H92!L:6YE)RX*(B!"=70@=VAE;B!)('1Y<&4@42P@=FD@=&5L;',@
XM;64@)T-A;B=T('EA;FL@:6YS:61E(&=L;V)A;"]M86-R;R<@86YD"B(@9V]E
XM<R!I;G1O(&5X(&UO9&4N($AO=V5V97(@:68@22!T>7!E("<Z;6%P(%$@<EA4
XM)R!A;F0@)SIM87 @5"!9)RP*(B!E=F5R>71H:6YG(&ES($]++B!)8&T@9&]I
XM;F<@86QL('1H:7,@;VX@82!3<&%R8W-T871I;VXN"B(@268@86YY;VYE(')E
XM861I;F<@=&AI<R!H87,@86X@86YS=V5R('1O('1H:7,@<')O8FQE;2P@=&AE
XM(&%U=&AO<B!W;W5L9 HB(&QO=F4@=&\@9FEN9"!O=70N($UA:6P@=&\@9W)E
XM9VU ;W1C+F]T8V$N;WHN874N"B(*(B!4:&4@;6%C<F]S.@HB(%1H92!M86-R
XM;R!T;R!R=6X@=&AE(&UA>F4@<V]L=F5R(&ES("=G)RX@5&AI<R!S:6UP;'D@
XM8V%L;',@='=O(&]T:&5R"B(@;6%C<F]S.B!)+"!T;R!I;FET:6%L:7-E(&5V
XM97)Y=&AI;F<L(&%N9"!,+"!T;R!L;V]P(&9O<F5V97(@<G5N;FEN9PHB('1H
XM<F]U9V@@=&AE('-T871E('1A8FQE+@HB($)O=&@@;V8@=&AE<V4@;6%C<F]S
XM(&%R92!L;VYG('-E<75E;F-E<R!O9B!C86QL<R!T;R!O=&AE<B!M86-R;W,N
XM($%L; HB(&]F('1H97-E(&]T:&5R(&UA8W)O<R!A<F4@<75I=&4@<VEM<&QE
XM(&%N9"!S;R!T;R!U;F1E<G-T86YD(&AO=R!T:&ES"B(@=V]R:W,L(&%L;"!Y
XM;W4@;F5E9"!T;R!D;R!I<R!E>&%M:6YE(&UA8W)O<R!)(&%N9"!,(&%N9"!L
XM96%R;B!W:&%T('1H97D*(B!D;R H82!S:6UP;&4@<V5Q=65N8V4@;V8@=FD@
XM86-T:6]N<RD@86YD(&AO=R!,(&QO;W!S("AB>2!C86QL:6YG(%4L('=H:6-H
XM"B(@<VEM<&QY(&-A;&QS($P@86=A:6XI+@HB"B(@36%C<F\@22!S971S('5P
XM('1H92!S=&%T92!T86)L92!A;F0@3F5X=$-H87(@=&%B;&4@870@=&AE(&5N
XM9"!O9B!T:&4@9FEL92X*(B!-86-R;R!,('1H96X@<V5A<F-H97,@=&AE<V4@
XM=&%B;&5S('1O(&9I;F0@;W5T('=H870@86-T:6]N<R!T;R!P97)F;W)M(&%N
XM9 HB('=H870@<W1A=&4@8VAA;F=E<R!T;R!M86ME+@HB"B(@5&AE(&5N=')I
XM97,@:6X@=&AE('-T871E('1A8FQE(&%L;"!B96=I;B!W:71H(&$@:V5Y(&-O
XM;G-I<W1I;F<@;V8@=&AE"B(@;&5T=&5R("=S)RP@=&AE(&-U<G)E;G0@<W1A
XM=&4@86YD('1H92!.97AT0VAA<BX@($%F=&5R('1H:7,@:7,@=&AE"B(@86-T
XM:6]N('1O('1A:V4@:6X@=&AI<R!S=&%T92!A;F0@869T97(@=&AI<R!I<R!T
XM:&4@;F5X="!S=&%T92!T;R!C:&%N9V4@=&\N"B(*(B!4:&4@96YT<FEE<R!I
XM;B!T:&4@3F5X=$-H87(@=&%B;&4@8F5G:6X@=VET:"!A(&ME>2!C;VYS:7-T
XM:6YG(&]F('1H90HB(&QE='1E<B G;B<@86YD('1H92!C=7)R96YT('-T871E
XM+B!!9G1E<B!T:&ES(&ES('1H92!A8W1I;VX@=&\@=&%K92!T;PHB(&]B=&%I
XM;B!.97AT0VAA<B M('1H92!C:&%R86-T97(@=&AA="!M=7-T(&)E(&5X86UI
XM;F5D('1O(&-H86YG92!S=&%T92X*(@HB($]N92!W87D@=&\@<V5E('=H870@
XM96%C:"!P87)T(&]F('1H92!M86-R;W,@:7,@9&]I;F<@:7,@=&\@='EP92!I
XM;B!T:&4*(B!B;V1Y(&]F('1H92!M86-R;W,@22!A;F0@3"!M86YU86QL>2 H
XM:6YS=&5A9"!O9B!T>7!I;F<@)V<G*2!A;F0@<V5E"B(@=VAA="!H87!P96YS
XM(&%T(&5A8V@@<W1E<"X*(@HB($=O;V0@;'5C:RX*(@HB(%)E9VES=&5R<R!U
XM<V5D(&)Y('1H92!M86-R;W,Z"B(@<R H4W1A=&4I(" @(" @(" M(&AO;&1S
XM('1H92!S=&%T92!T:&4@;6%C:&EN92!I<R!I;@HB(&,@*$-H87(I(" @(" @
XM(" @+2!H;VQD<R!T:&4@8VAA<F%C=&5R('5N9&5R('1H92!C=7)R96YT('!O
XM<VET:6]N"B(@;2 H36%C<F\I(" @(" @(" M(&AO;&1S(&$@=FD@8V]M;6%N
XM9"!S=')I;F<@=&\@8F4@97AE8W5T960@;&%T97(*(B!N("A.97AT0VAA<BD@
XM(" @("T@:&]L9',@=&AE(&-H87)A8W1E<B!W92!M=7-T(&5X86UI;F4@=&\@
XM8VAA;F=E('-T871E"B(@<B H4V5C;VYD($UA8W)O*2 M(&AO;&1S(&$@<V5C
XM;VYD('9I(&-O;6UA;F0@<W1R:6YG('1O(&)E(&5X96-U=&5D(&QA=&5R"B(*
XM<V5T(')E;6%P"G-E="!N;VUA9VEC"G-E="!N;W1E<G-E"G-E="!W<F%P<V-A
XM;@HB"B(]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]"B(@9R M(&=O(')U;G,@=&AE('=H
XM;VQE('-H;W<*(B @(" @(" @22 M(&EN:71I86QI<V4*(B @(" @(" @3" M
XM('1H96X@;&]O<"!F;W)E=F5R"FUA<"!G(" @24P*(@HB/3T]/3T]/3T]/3T]
XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
XM/3T]/3T]/0HB($D@+2!I;FET:6%L:7-E(&5V97)Y=&AI;F<@8F5F;W)E(')U
XM;FYI;F<@=&AE(&QO;W *(B @($<D/RY>32 M(&9I;F0@=&AE(&QA<W0@+B!I
XM;B!T:&4@;6%Z90HB(" @(" @("!>("T@<F5P;&%C92!I="!W:71H(&%N(%@@
XM*'1H92!G;V%L*0HB(" @1UE+9410("T@<')I;G0@=&AE('-T871E('1A8FQE
XM(&%N9"!N97AT(&-H87(@=&%B;&4@870@=&AE(&5N9"!O9B!T:&4@9FEL90HB
XM(" @(" @(#!3("T@:6YI=&EA;&ES92!T:&4@<W1A=&4@;V8@=&AE(&UA8VAI
XM;F4@=&\@13$*(B @(" @(#)';" M(&UO=F4@=&\@=&AE('1O<"!L969T(&-E
XM;&P@;V8@=&AE(&UA>F4*;6%P($D@("!')#\N#5Y'64ME1% P4S)'; HB"B(]
XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
XM/3T]/3T]/3T]/3T]/3T]/3T]"B(@3" M('1H92!L;V]P('=H:6-H(&ES(&5X
XM96-U=&5D(&9O<F5V97(*(B @(" @(" @42 M('-A=F4@=&AE(&-U<G)E;G0@
XM8VAA<F%C=&5R(&EN('1H92!#:&%R(')E9VES=&5R"B(@(" @(" @($$@+2!R
XM97!L86-E('1H92!C=7)R96YT(&-H87)A8W1E<B!W:71H(&%N("=/)PHB(" @
XM(" @(&UA("T@;6%R:R!T:&4@8W5R<F5N="!P;W-I=&EO;B!W:71H(&UA<FL@
XM)V$G"B(@(" @("!'3D(@+2!O;B!B;W1T;VT@;&EN92P@8W)E871E(&$@8V]M
XM;6%N9"!T;R!S96%R8V@@=&AE($YE>'1#:&%R('1A8FQE"B(@(" @(" @(" @
XM("!F;W(@=&AE(&-U<G)E;G0@<W1A=&4*(B P33!%0&U>32 M('EA;FL@=&AE
XM(&-O;6UA;F0@:6YT;R!T:&4@36%C<F\@<F5G:7-T97(@86YD(&5X96-U=&4@
XM:70*(B @(" @("!W6" M('=E(&AA=F4@;F]W(&9O=6YD('1H92!E;G1R>2!I
XM;B!T:&4@=&%B;&4L(&YO=R!Y86YK('1H90HB(" @(" @(" @(" @9F]L;&]W
XM:6YG('=O<F0@:6YT;R!T:&4@36%C<F\@<F5G:7-T97(*(B @(" @8&% ;2 M
XM(&=O(&)A8VL@=&\@=&AE(&-U<G)E;G0@<&]S:71I;VX@86YD(&5X96-U=&4@
XM=&AE(&UA8W)O+"!T:&ES('=I;&P*(B @(" @(" @(" @('EA;FL@=&AE($YE
XM>'1#:&%R(&EN(')E9VES=&5R(&X*(B @($=4)$(D4B M(&]N(&)O='1O;2!L
XM:6YE+"!C<F5A=&4@82!C;VUM86YD('1O('-E87)C:"!T:&4@<W1A=&4@=&%B
XM;&4*(B @(" @(" @(" @(&9O<B!T:&4@8W5R<F5N="!S=&%T92!A;F0@3F5X
XM=$-H87(*(B P33!%0&U>32 M('EA;FL@=&AE(&-O;6UA;F0@:6YT;R!T:&4@
XM36%C<F\@<F5G:7-T97(@86YD(&5X96-U=&4@:70*(B @(" @(#)74R M('=E
XM(&AA=F4@;F]W(&9O=6YD('1H92!E;G1R>2!I;B!T:&4@=&%B;&4L(&YO=R!Y
XM86YK('1H90HB(" @(" @(" @(" @;F5X="!S=&%T92!I;G1O('1H92!3=&%T
XM92!M86-R;PHB(" @(" @(&)8("T@86YD('EA;FL@=&AE(&%C=&EO;B!C;W)R
XM97-P;VYD:6YG('1O('1H:7,@<W1A=&4@=&%B;&4@96YT<GD*(B @(" @(" @
XM(" @(&EN=&\@=&AE($UA8W)O(')E9VES=&5R"B(@(" @("!'5DH@+2!O;B!B
XM;W1T;VT@;&EN92P@8W)E871E(&$@8V]M;6%N9"!T;R!R97-T;W)E('1H92!C
XM=7)R96YT(&-H87)A8W1E<@HB(" @(" @(#!(("T@86YD('-A=F4@=&AE(&-O
XM;6UA;F0@:6YT;R!T:&4@<V5C;VYD($UA8W)O(')E9VES=&5R"B(@(" @(&!A
XM0'(@+2!G;R!B86-K('1O('1H92!C=7)R96YT('!O<VET:6]N(&%N9"!E>&5C
XM='5T92!T:&4@;6%C<F\@=&\@<F5S=&]R90HB(" @(" @(" @(" @=&AE(&-U
XM<G)E;G0@8VAA<F%C=&5R"B(@(" @(" @0&T@+2!E>&5C=71E('1H92!A8W1I
XM;VX@87-S;V-I871E9"!W:71H('1H:7,@<W1A=&4*(B @(" @(" @52 M(&%N
XM9"!R97!E870*;6%P($P@("!106UA1TY",$TP14!M#7=88&% ;4=4)$(D4C!-
XM,$5 ;0TR5U-B6$=62C!(8&% <D!M50HB"B(]/3T]/3T]/3T]/3T]/3T]/3T]
XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
XM"B(@52 M(&YO('1A:6P@<F5C=7)S:6]N(&%L;&]W960@:6X@=FD@;6%C<F]S
XM('-O(&-H96%T(&%N9"!S970@52 ]($P*;6%P(%4@("!,"B(*(CT]/3T]/3T]
XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
XM/3T]/3T]/3T]/3T*(B!3("T@>6%N:R!T:&4@;F5X="!T=V\@8VAA<F%C=&5R
XM<R!I;G1O('1H92!3=&%T92!R96=I<W1E<@IM87 @4R @(")S>3)L"B(*(CT]
XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
XM/3T]/3T]/3T]/3T]/3T]/3T*(B!1("T@<V%V92!T:&4@8W5R<F5N="!C:&%R
XM86-T97(@:6X@=&AE($-H87(@<F5G:7-T97(*;6%P(%$@(" B8WEL"B(*(CT]
XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
XM/3T]/3T]/3T]/3T]/3T]/3T*(B!!("T@<F5P;&%C92!T:&4@8W5R<F5N="!C
XM:&%R86-T97(@=VET:"!A;B G3R<*;6%P($$@("!R3PHB"B(]/3T]/3T]/3T]
XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
XM/3T]/3T]/3T]"B(@3B M(')E<&QA8V4@=&AI<R!L:6YE('=I=&@@=&AE('-T
XM<FEN9R G;B<*;6%P($X@("!#+VX;"B(*(CT]/3T]/3T]/3T]/3T]/3T]/3T]
XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T*
XM(B!"("T@<'5T('1H92!C=7)R96YT('-T871E"FUA<"!"(" @(G-P"B(*(CT]
XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
XM/3T]/3T]/3T]/3T]/3T]/3T*(B!-("T@>6%N:R!T:&ES(&QI;F4@:6YT;R!T
XM:&4@36%C<F\@<F5G:7-T97(*;6%P($T@(" B;7DD"B(*(CT]/3T]/3T]/3T]
XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
XM/3T]/3T]/3T*(B!%("T@9&5L971E('1O('1H92!E;F0@;V8@=&AE(&QI;F4*
XM;6%P($4@("!D) HB"B(]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]"B(@6" M('EA;FL@
XM=&AI<R!W;W)D(&EN=&\@=&AE($UA8W)O(')E9VES=&5R"FUA<"!8(" @(FUY
XM=" *(@HB/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/0HB(%0@+2!R97!L86-E('1H:7,@
XM;&EN92!W:71H('1H92!S=')I;F<@)W,G"FUA<"!4(" @0R]S&PHB"B(]/3T]
XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
XM/3T]/3T]/3T]/3T]/3T]"B(@4B M('!U="!.97AT0VAA<@IM87 @4B @(")N
XM< HB"B(]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]"B(@5B M(&%D9"!T:&4@;&5T=&5R
XM("=R)R H=&AE(')E<&QA8V4@=FD@8V]M;6%N9"D*;6%P(%8@("!A<AL*(@HB
XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
XM/3T]/3T]/3T]/3T]/3T]/3T]/0HB($H@+2!R97-T;W)E('1H92!C=7)R96YT
XM(&-H87)A8W1E<@IM87 @2B @(")C< HB"B(]/3T]/3T]/3T]/3T]/3T]/3T]
XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
XM"B(@2" M('EA;FL@=&AI<R!L:6YE(&EN=&\@=&AE('-E8V]N9"!-86-R;R!R
XM96=I<W1E<@IM87 @2" @(")R>20*(@HB/3T]/3T]/3T]/3T]/3T]/3T]/3T]
XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/0HB
XM($8@+2!Y86YK($YE>'1#:&%R("AT:&ES(&UA8W)O(&ES(&-A;&QE9"!F<F]M
XM('1H92!-86-R;R!R96=I<W1E<BD*;6%P($8@(" B;GEL"B(*(CT]/3T]/3T]
XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
XM/3T]/3T]/3T]/3T*(B!>("T@<F5P;&%C92!T:&4@8W5R<F5N="!C:&%R86-T
XM97(@=VET:"!A;B G6"<*;6%P(%X@("!R6 HB"B(]/3T]/3T]/3T]/3T]/3T]
XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
XM/3T]"B(@64ME1% @+2!C<F5A=&4@=&AE('-T871E('1A8FQE+"!.97AT0VAA
XM<B!T86)L92!A;F0@:6YI=&EA;"!S=&%T90HB($YO=&4@=&AA="!Y;W4@:&%V
XM92!T;R!E<V-A<&4@=&AE(&)A<B!C:&%R86-T97(L('-I;F-E(&ET(&ES('-P
XM96-I86P@=&\*(B!T:&4@;6%P(&-O;6UA;F0@*&ET(&EN9&EC871E<R!A(&YE
XM=R!L:6YE*2X*;6%P(%D@("!O<T4Q("!K("!.,2 @(" @("!S13%?(&UM($4R
XM(" @(" @('-%,A9\(&UM(%,Q(" @(" @('-%,BX@;&P@13$;"FUA<"!+(" @
XM;W-7,2 @:B @4S$@(" @(" @<U<Q7R!M;2!7,B @(" @("!S5S(6?"!M;2!.
XM,2 @(" @("!S5S(N(&AH(%<Q&PIM87 @92 @(&]S3C$N(&AH(%<Q(" @(" @
XM('-.,19\(&UM($XR(" @(" @('-.,B @:R @3C$@(" @(" @<TXR7R!M;2!%
XM,1L*;6%P($0@("!O<U,Q+B!L;"!%,2 @(" @("!S4S$6?"!M;2!3,B @(" @
XM("!S4S(@(&H@(%,Q(" @(" @('-3,E\@;6T@5S$;"FUA<"!0(" @;VY%,2!K
XM1B!N13(@;$8@;E<Q($<D2D8@;E<R(&A&(&Y.,2!H1B!N3C(@:T8@;E,Q(&Q&
X/(&Y3,B!')$I&( U%,1L*
X
Xend
SHAR_EOF
$TOUCH -am 0208003691 maze.vi.macros.uu &&
chmod 0664 maze.vi.macros.uu ||
echo "restore of maze.vi.macros.uu failed"
set `wc -c maze.vi.macros.uu`;Wc_c=$1
if test "$Wc_c" != "16793"; then
echo original size 16793, current size $Wc_c
fi
fi
# ============= maze.out ==============
if test X"$1" != X"-c" -a -f 'maze.out'; then
echo "File already exists: skipping 'maze.out'"
else
echo "x - extracting maze.out (Text)"
sed 's/^X//' << 'SHAR_EOF' > maze.out &&
X._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
X| ._| . . ._| | |_._._. . ._|_._._._._. ._|_. ._|_._. ._| | . ._|_. | . ._._. |
X| ._|_| |_. | | | | ._._|_._|_._. . |_. | | | ._._| |_._._._| | ._. ._| . . |_|
X|_._._._. | ._|_. ._._._. | | ._. |_._. . | ._._| |_. | . ._._._. |_. | |_|_| |
X| | . |_._| . ._._._| ._._. ._._| | | |_| . | |_. . ._|_|_| ._._. |_._|_| . | |
X|_._|_._._._|_._._._|_|_._._._|_._|_._._._|_._._._|_._._._._|_._._._._._._|_._|
X|
SHAR_EOF
$TOUCH -am 0208012491 maze.out &&
chmod 0664 maze.out ||
echo "restore of maze.out failed"
set `wc -c maze.out`;Wc_c=$1
if test "$Wc_c" != "481"; then
echo original size 481, current size $Wc_c
fi
fi
# ============= maze.c ==============
if test X"$1" != X"-c" -a -f 'maze.c'; then
echo "File already exists: skipping 'maze.c'"
else
echo "x - extracting maze.c (Text)"
sed 's/^X//' << 'SHAR_EOF' > maze.c &&
Xchar*M,A,Z,E=40,J[40],T[40];main(C){for(*J=A=scanf(M="%d",&C);
X-- E; J[ E] =T
X[E ]= E) printf("._"); for(;(A-=Z=!Z) || (printf("\n|"
X) , A = 39 ,C --
X) ; Z || printf (M ))M[Z]=Z[A-(E =A[J-Z])&&!C
X& A == T[ A]
X|6<<27<rand()||!C&!Z?J[T[E]=T[A]]=E,J[T[A]=A-Z]=A,"_.":" |"];}
SHAR_EOF
$TOUCH -am 0109150191 maze.c &&
chmod 0664 maze.c ||
echo "restore of maze.c failed"
set `wc -c maze.c`;Wc_c=$1
if test "$Wc_c" != "441"; then
echo original size 441, current size $Wc_c
fi
fi
# ============= maze.ansi.c ==============
if test X"$1" != X"-c" -a -f 'maze.ansi.c'; then
echo "File already exists: skipping 'maze.ansi.c'"
else
echo "x - extracting maze.ansi.c (Text)"
sed 's/^X//' << 'SHAR_EOF' > maze.ansi.c &&
Xchar*M,A,Z,E=40,J[80],T[3];main(C){for(M=J+E,*J=A=scanf("%d",&
XC) ;-- E;J [E ]=M
X[E ]= E) printf("._"); for(;(A-=Z=!Z) || (printf("\n|"
X) , A = 39 ,C --
X) ; Z || printf (T ))T[Z]=Z[A-(E =A[J-Z])&&!C
X& A == M[ A]
X|6<<11<rand()||!C&!Z?J[M[E]=M[A]]=E,J[M[A]=A-Z]=A,"_.":" |"];}
SHAR_EOF
$TOUCH -am 0125132891 maze.ansi.c &&
chmod 0664 maze.ansi.c ||
echo "restore of maze.ansi.c failed"
set `wc -c maze.ansi.c`;Wc_c=$1
if test "$Wc_c" != "441"; then
echo original size 441, current size $Wc_c
fi
fi
exit 0
--
ACSnet: gregm@otc.otca.oz.au
Greg McFarlane UUCP: {uunet,mcvax}!otc.otca.oz.au!gregm
|||| OTC || Snail: OTC R&D GPO Box 7000, Sydney 2001, Australia
Phone: +61 2 287 3139 Fax: +61 2 287 3299
$B%$%C%U(J $B%f!<(J $B%+%s(J $B%j!<%C%I(J $B%:%#%9(J $B!<(J $B%9%^%$%k(J