Skip to content

Latest commit

 

History

History
64 lines (32 loc) · 3.8 KB

F16_lab03.md

File metadata and controls

64 lines (32 loc) · 3.8 KB

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

ucsb-cs56-projects#42

ucsb-cs56-projects#43

#(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.