CSE326
Summer 2004
Assignment 2
6/25/2004
Due: At beginning of class, Friday 7/2/2004

Working with a partner, develop an algorithm and write code to solve the Word Finder Puzzle.  Turn in the code along with some test data and an analysis of your solution algorithm.

Specifically, write a class called WordFinderPuzzle which reads a puzzle from a file and has methods for displaying and solving.  Even more specifically: on the web you will find code for a Java interface called IWordFinder (in package wordFinderPuzzle).  Make your class implement this interface (and put it in the same package).  You will also find a class already written called WFPuzzleReader, which is capable of reading in a text file containing the puzzle.  Call that in your WordFinderPuzzle class constructor to read in the puzzle.  After you have read the comments in the IWordFinder.java and WFPuzzleReader, you will understand a bit more of the details of what is asked for.  Please do read that carefully before you begin any coding!

Link to all files (by the way, in case you didn't notice, the /docs directory has some Javadoc). Added 6/28A .jar file with the binary (.class) files for all the packages.  See the Message Board for explanation.

The rules for the puzzle are basically the same as for the ones you solved with pencil and paper.  Some notes and/or differences:

In addition to the program, please create one significant legal puzzle file and turn it in.  (It can be based on a puzzle from a published puzzle book or from the web).

Your analysis should be written separately from the program and turned in on paper.  Your arguments can be informal.  They should include complexity function(s) and big-O analysis, and explanations or arguments or experments supporting your analysis.

There should also be a (very short) written report about how well your algorithm runs on certain test files which we will designate.

The exact method for electronic turn-in will be specified later; expect the deadline to be Thursday evening.

Other notes:
The packages MDUtils and textfile contain some classes used by the WFPuzzleReader.  They need to be copoied to your system and put on the classpath so that WFPuzzleReader will compile and execute, but otherwise you don't need to look at them.