Shunji Zhan id: shunjizhan Weikun Zhuang id: wkzhuang
a, This is a 2D game simulating the classic game Pokemon. In our version we will have a character moving, with a Pokemon following him.
b, As a player I can use the arrow keys on the keyborad to controll the character, so that the character can change the direction that he is facing to.
As a player I can use the arrow keys on the keyborad to controll the character, so that the character can move in either up, down, left, or right.
c, The software can run. It opens up a new window and displays a pokemon map, in which there is a character followed by a Pikachu. On the map there are some trees, houses, and bushes. We can use the arrow keys to controll the character to make it move. The Pikachu will always follow the character.
d, As a player, I can move the character to some different locations, so that the background music will change. As a player, I can move the character to the door of a house, so that the character will enter the house and the map will change. As a player, I can see a menu before entering the map, so that I can see some pre-dialoge, some pre-illustration, or just some pictures. As a player, I can choose the character, so that the character we will be controlling will change to the one we select. As a player, I can select the Pokemon, so that the Pokemon following the chracter will change to the one we select. As a player, I can press some button on the keyboard, so that the character can "run" (move faster) As a player, I can press some button on the keyboard, so that the character will be able to ride a bike and move faster. As a player, I can press some key when facing the Pokemon, so that they will interact with each other.
d, 1, We can add some links to information about the "YELLOW VERSION" mentioned in the file, since not everyone has played that version, providing a link will help them understand what this version is. For example, we can add the Wikipedia link. 2, We can add explanations of some particularly important functions in each file. Since right now it only has big picture of each file does, but doesn't have any info about particular functions in them. In order the maintain the software, it is essential to understand how the function actuall works. So adding those info will be helpful.
e, target "jar", target "download", need some comment. target "jws" needs to be removed.
f, There are enough issues to work on to gain 1000 points. The issues are pretty clear. And we may also add more issues if we came up with some.
g, 1, We can probably add some background music, which will change according to the place the character goes. 2, Add the ability to walk inside the building 3, Let the character can choose between run/walk/bike 4, Fix minor bugs like Professor Oak's hair when walking by the boundaries
h, The code is organized in more than ten .java files and each of them correspond to the different elements of the game. The purpose of the classes are pretty clear. However, some methods are not that clear, although they have comments about how this function works, but there is few detailed explanation about the actual code. We may need to inspect the code one line by one line to try to figure out how it works. Since there are so many files, it is not really clear how each class is related to others. But the name of each file offers some hint about how they should be related to each other. The code was well organized, with some comments on it, so we would say it is time-consuming to understand the code, but it might not be too hard to do so. If we have to help someone else to get up to speed quickly, I would tell him to start from the GameMain.java. Try first to understand in the main function, how rederer, gamelogic, mainwindow are related to other classes and how they work.
i, According to the build.xml file, there are some Junit tests. However, when we tried to do ant test, it didn't show any result and the compiler said "This is not a bug; it is a configuration problem". So we sill have to figure out how to fix and use the test cases. What's more, we can also test by just run the program, since most feature we will add is about GUI effect, we can test by actually see how the graph is doing compared to our expectation.
Code related stuff: It seems that the MainWindow class and GameMain class is related. But MainWindow is only used once is GameMain class. So we can probably put MainWindow class and GameMain class into one file, so that it will be easier to keep track of the logic and reduce the number of files. What's more, the player class, which extends Character class, can be put right after the Character class, since it is really short. But We are not sure if this follows the convention or not, since it might also be a good idea to put each class in a different file. By looking through all the files we found that every functions are well commented, although not in many details. It is still enough to get to understand what each function does. In addition, The package names follows the naming convention.