Grading Guide for Assignment 6 Correctness: 1. General: c1a: doesn't compile, or throw exceptions, or no submitted file, or only submit class file... c1b: use completely different code for "PuzzleAsArray" and "PuzzleAsString". or do not use interface "IPuzzle" at all. (Attention: this does not count when you first calculate the score. But if the student get this error code, minus 1 from the final score) c1c: display an initial state of the puzzle when you type "java PlayPuzzle" c1d: display an initial state of the puzzle(3X3) when you type "java PlayPuzzle array 0 3" c1e: display an initial state of the puzzle(3X3) when you type "java PlayPuzzle string 0 3" c1f: display an initial state of the puzzle(2X2) when you type "java PlayPuzzle array 0 2" c1g: display error message when you run "java PlayPuzzle array 0" c1h: display error message when you run "java PlayPuzzle hello 0 3" c1i: display error message when you run "java PlayPuzzle array -1 3" c1j: display error message when you run "java PlayPuzzle array 0 -1" c1k: do not add any code to IPuzzle c1l: catch all(any other error not mentioned in the grading guide, add your comment!) c1m: ask for user input instead of taking command line arguments (Attention: this does not count when you first calculate the score. But if the student get this error code, minus 1 from the final score) c1n: implement just one class (either PuzzleAsArray or PuzzleAsString) (Attention: this does not count when you first calculate the score. And if the student get this error code, do not count the error codes for the corresponding section, minus 2 from the final score) Note: 1. If the student treat level 0 as error case, but handle other positive level correctly, that's fine. Do not take points off for c1d, c1e, c1f 2. If they dectected the error case, but just did not output the error message, they that's s1h: bad formating for output. Do not take points off for c1g~c1j 2. PuzzleAsArray c2a: PuzzleAsArray actually use a char array to store the puzzle c2b: Input "N" works when it can move in that direction c2c: Input "S" works when it can move in that direction c2d: Input "W" works when it can move in that direction c2e: Input "E" works when it can move in that direction c2f: Input "Q" will quit the game. c2g: Input "R" will reset the game. c2h: Input "?" display help infomation c2i: error message for illegal input c2j: should not be case sensitive c2k: run "java PlayPuzzle array 1 3", then type "A", it solve the puzzle. c2l: run "java PlayPuzzle array 1 3", then make 3 moves(not reach the solving state) then type "A", it solve the puzzle. c2m: quit the game if the puzzle is solved c2n: has brief pause when solve the puzzle automatically 3. PuzzleAsString c3a: PuzzleAsString actually use a string(or string buffer) to store the puzzle c3b: Input "N" works when it can move in that direction c3c: Input "S" works when it can move in that direction c3d: Input "W" works when it can move in that direction c3e: Input "E" works when it can move in that direction c3f: Input "Q" will quit the game. c3g: Input "R" will reset the game. c3h: Input "?" display help infomation c3i: error message for illegal input c3j: should not be case sensitive c3k: run "java PlayPuzzle string 1 3", then type "A", it solve the puzzle. c3l: run "java PlayPuzzle string 1 3", then make 3 moves(not reach the solving state) then type "A", it solve the puzzle. c3m: quit the game if the puzzle is solved c3n: has brief pause when solve the puzzle automatically Style: s1a: have the message "Input [NSEW QRA?]" s1b: Press "?" should not quit the game after display error message s1c: redundant code; s1d: bad formatting for code style; s1e: no comments, or bad comments; s1f: no header or bad header; s1g: bad file name; s1h: bad formatting for output; s1i: using break in the loop; if they do it for every loops, treat it as one mistake Bonus: 20 points: Include class PuzzleAsInt, using an integer representation of a Puzzle. The command-line will accept int to choose this Puzzle type. 20 points: Write another program PuzzleGUI.java that uses a GUI to play the game using the array representation of the Puzzle. Include several buttons that provide flexibility to the user for a variety of modes. 20 points: Animate the solution process in your GUI. 20 points: Allow the user to upload a figure, which is divided into the tiles instead of using numbers. 20 points: Bonus-bonus points! If you do all 80 bonus points completely, you will receive another 20 bonus points. Style: _________________ Points | C | ________ _______ 5 | 0-1 | ________ _______ 4 | 2 | ________ _______ 3 | 3-4 | ________ ________ 2 | 5-6 | ________ ________ 1 | 7-8 | ________ ________ 0 | 9 | ________ ________ Correctness: _________________ Points | C | ________ _______ 5 | 0-3 | ________ _______ 4 | 4-8 | ________ _______ 3 | 9-13 | ________ ________ 2 | 14-20 | ________ ________ 1 | 21-26 | ________ ________ 0 | 27+ | ________ ________ c1a: do not grade, just give 0 c1b: -1 from total grade c1m: -1 from total grade c1n: -2 from total grade, do not count the error codes for the corresponding section