Programming Assignment 9


Due: Week of Mar. 27 before lab


  1. (25 points) Sudoku. Write a function to verify a solution to a Sudoku puzzle. It must contain the following header:
    public static boolean verifySudoku(int[][] solution);
    Write a client program that takes a filename as a command-line argument, whose contents represent a solution to a sudoku puzzle, and output whether the solution is correct. You can assume the files contents always contain 81 numbers whose values are between 1 and 9.
    • Name the file and program Sudoku.java.
    • Example files: sudoku1.txt and sudoku2.txt
    • Example execution (java Sudoku sudoku1.txt):
      The solution contained within 'sudoku1.txt' is correct.
    • Example execution (java Sudoku sudoku2.txt):
      The solution contained within 'sudoku2.txt' is incorrect.
  2. (50 points) Write a description of an object-oriented framework. You can choose anything you would like, except for the aquarium and the world of Harry Potter as was discussed in class. You need at least four objects interacting with each other. Provide both a written description (typed, one paragraph per object with one paragraph overview) and a UML diagram (computer generated, not hand drawn!). Be sure to include correct notations for aggregation and composition in the diagram.
  3. (25 points) This course has a final programming project. It should revolve around an interactive program or simple game (be visual), involve both file input and output, and be composed of at least 3 objects. A good example would be a version of Guitar Hero for the keyboard. In this you would read a song from a file (series of buttons needing to be pressed not an actual song), then have the person press each of the buttons to win the game, and finally write a set of statistics to a file.
    • Describe your topic, the visual display, file I/O involved, and major objects comprising your project.
    • If you decide to do the project with a partner - (a) each of you must have this paragraph written in your own words and (b) list the name of your partner clearly
  4. Bonus. (20 points) Maze solver. Write a program that takes a single filename as a command-line argument, whose contents represent a maze, and determine whether or not a path exists. If a path exists, output one possible solution to the maze. The first line of the file defines the size of an N x M matrix. The rest of the contents are characters: 's' is the start, 'g' is the goal, 'x' is an obstacle, and '.' is an empty cell. Solve this problem with a recursive function. When outputting the solution, show the entire maze with all of the '.'s replaced with 'p' if they lie along your solution path. You may assume the contents of the file are always correct.
    • Name the file and program MazeSolver.java.
    • Example files: maze1.txt and maze2.txt
    • Example execution (java MazeSolver maze1.txt):
      Solution path exists
      . x . x p p p p p
      . . . x g x x x p
      x . x . x . . . p
      x s p p p x x x p
      . . x x p p p p p
    • Example execution (java MazeSolver maze2.txt):
      Solution path does not exist


General Instructions, Turning in assignments, and Grading

General Instructions

Turn in Instructions

Each assignment will be turned in to both Blackboard (soft copy) and in class (hard copy). Assignments are due BEFORE, let me repeat, before class starts. This does not mean five minutes after class starts.

Points