Ricky Kuang, Zehao Li github id: rkuang, robingorge
a: The snake game is for user to control a snake to eat fruits by up, down, left and right key. If the head reaches the snake body, the game will be over.
b: As a user, I can choose number of players so that I can decide how many players in the game. As a user, I can choose different window size (500500,600600,700*700) so that the window of game will be small, medium or large. As a user, I can choose different game mode (Normal or Puddles) so that the game will be easy or hard. As a user, I can press spacebar to begin the game so that I can use different keys to control the snake.
c: The program can run. It's a snakes game.
c: As a user, I need more modes to play, like unlimited life mode. As a user, I want to use the mouth in the main menu. As a user, I want to choose the speed of the snake in the main menu. As a user, I want the snake better looking than now to entertain.
d: 1, We can make the format better. 2, Some sections, instructions, and information are hard to find. 3, We can also fix some spelling and grammar mistakes. 4, The play instruction is too complicated. We want it to be more readeble and easier to understand.
e: We do not need to change build.xml. It has the target of compile, javadoc, test, run and clean. It's up to date.
f: There are seven issues for the game. The total points of these issues are about 1000 points. They are clear and we know what we need to fix.
1, additional mode/level: create more modes for player to play.160 points. #15
2, add varying levels of difficulty: change speed of the snake.300 points. #14
3, Update Artwork to Make Game More Playable: make the size of fruit and snake reasonable and easy to see. 120 points #13
4, Refactor SnakeFrame into multiple objects/files:seperate the object/class into different files like JFrame, snake object, level generation. 400 points. #16
g: 1, 2-player-mode has some problem to fix:the yellow snake always wins in the game.When it hits the blue snake the game will not end. #29
2, Change of window size does not work. #30
3, For How to play menu, the art needs to be updated. #31
4, The mouse interaction for the main menu and in game. #32
h: Snakeframe is like the game.java. It includes the input helper method. We creat new object and window in this class. Main.java is to run the game. Object class and tail class is for the snake. Stopwatch is to count the time and Highscore is to save the high score. Painter class is a useless class. It seem s that the author combines it to the snakeframe.
Classes like Stopwatch and Tail and HighScore are easy to understand, but others like Main, Painter, and SnakeFrame are vague. Once we refactor SnakeFrame, some of these issues will be fixed. We can also fix variable and method names to make the code more readable.
i: The test only covers the tail class.
We can also have the test for the game object. The test should be like tail test class which covers each method of the class.
For the snakeframe class, we can seperate the input helper out of this class.