Artem Jivotovski, Max de Visser
#(a) Description The user controls a character that explores a pitch black room and kills monsters. As the user progresses through the room, the layout of the room is illuminated. The user advances to the next level by slaying all the monsters in a room.
#(b) Current User Stories
As a player, I can provide directional input to move my character up, down, left, or right.
As a player, I can move around to illuminate the area around me.
As a player, I can move into monsters to attack and kill them.
As a player, I can move onto the items dropped by monsters to pick them up.
As a player, I can collect certain items to improve character attributes.
As a player, I can kill all the monsters in a room in order to advance to the next level.
As a player, I can take damage until my health total drops to 0, which ends the game.
#(c) Assessment of Status of Software
The software runs very well. There are few obvious bugs. The game generates a menu screen with several options such as "Play," "Instructions," "Highscores," and "Quit." The functionality of "Play" has already been described, and the other options are self explanatory. If the user completes a level, the game generates another one. This continues until the player dies.
#(d) Future User Stories
As a player, I can explore the map in order to illuminate a relatively complex layout of hallways and smaller rooms.
As a player, I can engage in turn based combat with monsters through a menu of options such as "Attack" or "Run" in order to fight to the death.
As a player, I can find weapons and armor to improve my combat capabilities.
As a player, I can progress through levels to reach boss battles.
As a player, I can defeat bosses to discover special loot.
#(e) README Assessment
The Readme is very robust and covers both the use, functionality, and software of the game. It also provides good direction for future development. I don't think there are any extra sections in particular that could be added to help the next generation, just update the current sections with changes we've made and what we think should be done next.
#(f) build.xml Assessment
Target test is missing a description. There is no JWS legacy code. There are issues when building the javadoc, like being published to CSIL rather than Github pages.
#(g) Assessment of Issues
There are 1150 points to be earned from issues. The issues are clear in what they expect.
#(h) New Issues
#(i) Assessment of Code
The code is very well documented and methods' and classes' purposes are clear. There are many subclasses of Monster and Item, which makes the directory quite cluttered. If they could be refactored so that they could be represented as Monster instances rather than each having a class, that would make the code much more consolidated. The getDirection method within the Monster class is very ugly and not well documented. The RoguePanel class is massive and made up of many smaller methods (very cluttered reading through the code) that could potentially be moved into separate, more specific classes. The RogueController class is also too universal, and methods should be separated by function into separate classes. The same can be said about LogicEngine. The information I would convey would be what each of the monolithic classes does (RogueController, LogicEngine, and RoguePanel), and how the hierarchy of Player, Monster, and Item works.
#(j) Assessment of Testing
There are 3 testing classes with ~700 lines of JUnit tests. However, it only tests constructors and some setters, leaving many methods to be tested, such as moving pieces.