Daniel Shu and Sitao Chen
github id:
shudaniel
sitaochen
-
(a) The game is a randomly generated maze for the user to solve and controlled by WASD. There are custom settings to change the type of maze created.
-
(b) As a user, I can press W, A, S, or D so that I can move up, left, down, and right respectively. As a user, I can press the up arrow, down arrow, left arrow, and right arrow so that I can move up, down, left, and right respectively. As a user, I can press New so that I can start a new maze. As a user, I can press "Solve Maze" so that I can see the current correct path to solve the maze. As a user, I can press "How to" so that I can open a page that details instructionson how to play. As a user, I can press "High Scores" so that I can see the current best scores of previous users.
-
(c)The software does run. It creates a random maze where the user tries to navigate to the end using WASD or the arrow keys. There are settings that can change the color and shape of the user-controlled character. The game also has different modes that change how the maze is solved.
-
(d)As a user, I can change the music so that it does not play the same song every time. As a user, I can change the size of the window and the game will scale with it. As a user, I can see the path I took once I have finished the maze. As a user, I will start somewhere randomly in the maze instead of only the top left corner so that it will be different every time.
-
(e)Add a description on what the different game modes, such as inverse mode or random mode, do. Add a description of what changing the different setting options will do. Also, there are ways to run the game with command line arguments, but this is not mentioned anywhere.
-
(f)All targets have descriptions and there is no old legacy JWS stuff that needs to be removed.
-
(g)There are enough issues to earn 1000 points and each issue is very clear in what needs to be implemented/fixed.
-
(h) Every time a new maze is started, the music doesn't stop. It layers the new music on top of the old one. #62
-
(i)The classes seperate different component of the maze game. For example, the class of MazeGrid only draws a maze with specific size. The maze GUI only controls the display.The MazeGenerator has the algorithms of solving the maze. And each widget has its own class. All the classes and methods have comments about what they do, which makes it easy to understand what is supposed to happen. The code, however, has weird dependencies. For example, a MazeGrid object has a MazePlayer and a MazePlayer object has a MazeGrid. I would give a message that the main methods are in the MazeGui.java, you should start by reading through the tests in MazeGridTest.java to know the intended functionality of each method.
-
(j)There is only a junit test class called MazeGridTest.java. Only one part of the project , the implementation of the MazeGrid, is partially covered by testing. We can write tests for the rest of the methods that are missing. A majority of the program does not have test coverage.