Announcing the 3-93 Puzzle/Programmer Of The Month (POTM).  Just DO IT!
 (Contest open to whoever finds out about it!  Feel free to tell anyone!)

Do you like solving mazes?  (That was a rhetorical question by the way.)

Let us say you have a file that looks like:

X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X           X X               X   X   X
X XXXXXXXXX X X XXXXXXXXXXX X X X XXX X
X     X   X X X       X   X X   X     X
XXXXX X XXX X XXX XXX X X X X XXXXXXX X
X     X   X X       X X X   X X   X   X
X XXXXXXX X XXXXX XXX X XXXXXXX X X XXX
X X     X         X   X         X X   X
X X XXX XXX XXXXXXX XXXXXXXXXXXXX XXXXX
X   X X   X X   X   X     X     X     X
X XXX XXX XXX X X XXX XXX X XXX XXXXX X
X X     X X   X   X X X   X   X     X X
X X XXX X X XXXXXXX X X X XXX X X XXX X
X X X   X X X   X     X X   X X X X   X
X X X XXX X X X X XXXXX X XXX X X X XXX
X X X X   X X X       X X X   X X X   X
X XXX X XXX XXXXXXXXX X XXX XXX XXX X X
X X   X   X     X   X X       X     X X
X X X XXX XXXXX X X XXXXXXXXXXXXX X X X
X   X   X         X               X X X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X

Can you write a program to change that file such that a solution is shown?

X*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X***********X X*************  X   X   X
X XXXXXXXXX*X X*XXXXXXXXXXX*X X X XXX X
X     X   X*X X***    X***X*X   X     X
XXXXX X XXX*X XXX*XXX X*X*X*X XXXXXXX X
X     X   X*X    *  X X*X***X X***X   X
X XXXXXXX X*XXXXX*XXX X*XXXXXXX*X*X XXX
X X     X  *******X   X*********X*X   X
X X XXX XXX XXXXXXX XXXXXXXXXXXXX*XXXXX
X   X X   X X   X   X     X     X*****X
X XXX XXX XXX X X XXX XXX X XXX XXXXX*X
X X     X X   X   X X X   X   X     X*X
X X XXX X X XXXXXXX X X X XXX X X XXX*X
X X X   X X X   X     X X   X X X X***X
X X X XXX X X X X XXXXX X XXX X X X*XXX
X X X X   X X X       X X X   X X X***X
X XXX X XXX XXXXXXXXX X XXX XXX XXX X*X
X X   X   X     X   X X       X     X*X
X X X XXX XXXXX X X XXXXXXXXXXXXX X X*X
X   X   X         X               X X*X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*X

If you can, then you can win the POTM this month!

======================== DETAILS FOLLOW ===============================

DEADLINE FOR ALL ENTRIES IS MIDNIGHT MARCH 31, 1993.

1) Write a program that takes a full path name as an argument.

2) Assume that the file described by the full path name is a maze as follows:
	a) Walls are represented by "X" ; paths by " ";
	b) There are no extra lines in the file - only the maze; the last
		character in each line will be an "X".
	c) There may be, at most, 75 columns and 75 rows in the maze;
		(minimum size will be 9 rows or columns.) 
		(It need not be square.)
	d) each row will be terminated with a CR/LF (a normal "\n" thingy);
	e) The starting point will be on the top row in the upper left corner, 
		and the finish will be on the bottom row in the lower 
		right corner  (as shown in the example).
	f) There will be at least one solution to the maze - where a solution
		is an uninterrupted path between start and finish that does
		not cross a wall or traverse outside the maze.  There may
		be more than one solution (as in the example).

3) Your task is to find a solution to the maze, and mark it with "*" as shown
	in the example.  Walls may not be removed under any circumstances.
	The "*"s must form a contiguous path through the maze from start
	to finish.  All parts of the solution, including the start and finish
	squares, must be marked.  Solutions (obviously) may make only
	right angle turns.

4) Your program should store the entire maze, with solution marked, back into
	the same pathname from which it got the maze.  There should be the
	same number of characters in the file when you are done - the only
	difference being that you replaced some " "'s with "*"'s.
	Your solution length will be the number of "*"'s - so any extra
	"*"'s will work against you - even those that lead to dead ends.

WINNING:	1. Winners MUST find a solution to three random mazes in
			order to qualify.  I will generate the mazes.
		2. First tiebreaker will be the sum of the path lengths of
			the three solutions - the shorter the better.
		3. If two entries both find all three optimal solutions to
			the maze, I will apply the final tiebreaker.
		4. The final tiebreaker is the length of the program once
			again.  BUT - in the case of compiled code, I will
			consider the length of the SOURCE code rather than
			the a.out.  Length will be measured using "ls -l".
		5. Pick up your trophy!
		6. My decisions are final.

PARTICIPATING:

	uuto your entries to me at homxb!fah - name them something clever!

	For a.out files, uuto me the source code and mail me instructions
		for compiling it.  I will compile all entries on homxb.  If
		you wish to use some strange language not available on
		homxb, I will work something out whereby you may be able
		to compete on your local machine.  Obviously, shell, awk,
		sed, etc. stuff is permitted as well.

	If you need some sample mazes, drop me some email and I'll uuto you
		half a dozen files you can use for testing!  You can always
		edit this mail and use the example above to get started!

	As always, I'll try to system test the entries as I receive them and
		I'll get back to you with any problems real quick!

YOU TOO CAN TAKE YOUR RIGHTFUL PLACE IN THE LONG LINE OF POTM WINNERS!
... BUT YOU CAN'T WIN IF YOU DON'T JOIN!

=Fred