CMPUT 229 Laboratory Assignment - Dungeon Crawler ================================================= Final Mark: /100 MARKS TOTAL ===== Part 1: _____ /80 dungeon.s Part 2: _____ /20 Program Style ------------------------------------------------------------------------ Part 1: dungeon.s Total: _____ /80 The categories in this section will be graded by unit tests. _____ /20 Dungeon Crawler Functions _____ /8 buildPaths * Correctly added paths to the dungeon map array. _____ /4 buildLootOrEnemies (Loot) * Correctly added loot to the dungeon map array. _____ /4 buildLootOrEnemies (Enemies) * Correctly added enemies to the dungeon map array. _____ /2 replacePoint * Correctly replaced an element in the dungeon map array. _____ /2 getDestination * Returned the correct value from the dungeon map array. _____ /15 Timer behaviour * For proper timer behaviour. _____ /12 Timer counts down every second. * No part marks for this part, either it works or it does not. _____ /3 Game ends when timer reaches zero. _____ /45 Gameplay behaviour * For proper gameplay behavior. _____ /10 The dungeon's paths, walls, loot, and agent are displayed in the correct positions on the map. * If the game is displayed with minor errors 5 marks are deducted for this part, but all further tests are conducted assuming the dungeon displayed by the game is correct. If the dungeon is displayed with major errors that affect the playablity of the game, 8 marks are deducted for this part, but all further tests are conducted assuming the dungeon displayed by the game is correct. If the dungeon is not displayed at all, all marks are deducted, but all further tests are conducted assuming the dungeon displayed by the game is correct. _____ /10 The agent can be moved up, down, left or right by pressing the 'w', 's', 'a' and 'd' keys respectively. * The agent should not move when any other key is pressed. If the agent can be moved by pressing some other keys, deduct 3 marks. If the game state can only be changed by pressing the above listed keys but the order is incorrect, for example pressing 'w' moves the agent down, then deduct 2 marks. _____ /4 The agent can only walk on paths. * No part marks, if the agent can move through dungeon walls, deduct 5 marks. If the game does not display the walls, this part is still checked based on where the walls are supposed to be. _____ /3 The agent can move to a position that contains loot to collect it. After the agent collects the loot, the loot symbol 'L' should be replaced by a path for the rest of the game. _____ /2 After the agent collects loot, the time remaining should increase by 5 seconds. _____ /2 The player's health points are displayed below the dungeon map. The player starts the game with 3 health points. _____ /3 When the agent encounters a hidden enemy, the agent should be blocked from moving to that position and an 'E' symbol should appear at that position instead. * Deduct 1 mark if the agent is blocked from moving but the 'E' symbol does not appear. _____ /4 The player loses 1 health point per timer interrupt after encountering an enemy and is unable to move. * Deduct 2 marks if the agent loses 1 health point per timer interrupt but can still move. Deduct 2 marks if the agent is unable to move but does not lose health points correctly. _____ /3 Ecountered enemies disappear after the spacebar is pressed and then the agent stops losing health points. The agent is then able to move to the position that the enemy used to occupy. _____ /2 The game ends once the player loses all health points. _____ /2 The game ends when the agent reaches the dungeon exit and there is no loot remaining on the map. If there is loot remaining on the map when the agent moves to the finish point, the game should not end. * It does not matter if the MMIO display is updated to show the agent character '@' disappearing at the finish position; as long as the game ends after the player inputs the key to move to the finish point no marks will be deducted. ------------------------------------------------------------------------ Part 2: Program Style Total: _____ /20 Some common deductions will include: (5 marks per deduction) No function descriptions No program header No explanation for register usage No block comments