Note: The requirements below  must be met to get any credit for this assignment.

  1. Only the following imports are allowed
    1. javax.swing.*
    2. java.awt.*
    3. java.util.ArrayList
    4. java.util.Scanner
    5. java.io.*
  2. In particular, you must implement all the code for sorting and searching yourself.
  3. Your code must be formatted neatly. Eclipse can do this for you.
  4. Your code must follow the conventions described here.
  5. Add Javadoc comments to your code and generate the Javadoc file before submitting your assignment. Javadoc comments must show who authored that piece of code.
All the items above must be done to get any credit on the assignment.

Assignment

Implement the popular word game Ruzzle, shown here.Ruzzle screenshot

Minimum requirements for user interface

  1. Game board similar to the one pictured
    1. Letter tiles, showing letter and value of each tile. Here are the values of all the letters.
    2. Each tile has an optional indicator for double word score. Your indicator need not look like the one pictured.
    3. Each tile has an optional indicator for double letter score. Your indicator need not look like the one pictured.
  2. Menu with the options: Game (New, Read Word List, Exit)
  3. Two-minute timer  - starts at 02:00 and counts the seconds down to 00:00
  4. Current score display - score is calculated using the values of letters used in a word, plus any applicable double letter and double word multipliers.

Functional Requirements

  1. When launched, the program does the following:
    1. Creates and displays a new game
    2. Starts the timer
    3. Waits for user to find words
  2. User selects letters to form words using the mouse.  During this process:
    1. Selected letters are highlighted as they are selected.
    2. Word under construction is shown on the board
  3. When the word is completed:
    1. your program checks to see if proposed word is acceptable. A proposed word is acceptable only if it appears in this word list
    2. This word list can be changed by adding words to the text file, or by deleting words from it. Your program will read the word list when the program is launched, or when the user selects Game/Read Word List. Your program must work correctly with any text file representing a list of words.
    1. Acceptance of a word is indicated by an  "acceptance" sound. Rejection of a proposed word is indicated by a "rejection" sound.
  4. Game ends when all words have been found, or when the time runs out, whichever comes first. When the game ends, your program displays a message like, "You found 24 out of 152 words". It also shows the 24 words found and all the 152 words that are contained in the puzzle.

Grading Rubric

  1. (15 points) Project demonstrates good object-oriented design.
  2. (15 points) The user interface described above.
  3. 15 points each for the 4 functional requirements listed above. Each element will be graded on a boolean basis. That is, you get full credit for that element if it fully meets the requirement.You get no credit for that element if any part of that requirement is not met.
  4. (10 points)  Something you add to the project that is not required.  How many points you get out of 10 depends on my perception of the utility and coolness of your addition.