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