C# PROGRAMMING
Introduction:
Maze Game is introduced to you during the lectures. You are required to logically extend the functionality of the
game via the modification of the code base as well as documentation and implementation of various user stories.
You will use the Boost methodology discussed during lectures, which requires the use of pair programming.
This pair programming in mandatory for this assignment and you have to discuss the matter with your lecturer
for any exception. The code base provided for this assignment has already been implemented with “warm up”
and some “sets”. You will be implementing numerous other “sets” for this assignment using the Boost
methodology.
Before starting the assignment, it is highly recommended for you to spend a few minutes to be familiarize with
the given code, especially to understand the roles of each class plays within the system.
Requirements:
In Pairs:
Task-1.Design and implement a custom environment for your maze game. This requires producing your own
unique hand-drawn map of the maze game environment and changing the HardCodedData file to reflect the
locations and items on your map. At least M (M>4) locations, including Exactly N (N>2) shops with a
condition M>N, must be included, as well as enough items to allow for proper testing of the game functionality.
For example, there must be sufficient items to verify that a player cannot collect an item if the weight restriction
has been met. Note: you should not retain the original locations or items from the provided code base in your
version of the game.
Task-2.Write down the functionalities as detailed in Lab 7 and Lab 8 according to Behavioral Driven
Development (BDD). For more details about BDD, see Appendix-1.
Task-3.Implement each of the following deliverables / milestones:
a. functionalities or scenarios developed in Task-2
b. commands to manage the various item management commands:
i.listItems, getItem and dropItem, to allow listing of all held items, collect a new item and drop
a held item.
ii.equipItem and unequipItem, to wear / wield a held item, and to stop wearing or wielding an
equipped item.
iii.purchaseItem and sellItem, to buy an item from a vendor and to sell an item to a vendor.
Ensure that weight restrictions are not exceeded and that the context for each command is
appropriate. For example, purchasing and selling of items should only occur in a shop.
c.basic combat functions, allowing a player to attack or to be attacked by a non-player character (NPC).
A player may flee combat or continue to attack until such time as one combatant loses all life points.
The end result must not be hard-coded, and neither the hostile NPCs nor player may have their attributes
configured in such a way that the final outcome is pre-determined. Note that combat functions should
only be available when the player is in the presence of a hostile NPC, and combat may take whatever
form is appropriate for your game context rather than being limited to just hits with a weapon.
Task-4.Produce a nice power-point/latex presentation (maximum 20 slides) describing the steps to play and how
it is implemented. Discuss about the role of design patterns in the game, clearly identifying the functionality
where design patterns have had an impact and how this has occurred. Reflect on the use of a development
methodology in creating the game. Clearly mention about an additional feature that could be incorporated in the
software. Show the BDD statements in a few slides that you have developed for Task-2.
Task-5.Prepare a Jira account (one account for a team), and create Tickets (story) that you are planning to do. A
jira ticket/story is a small job that is assigned to any of you and there is an estimation of how long it will take
time to finish the job. You can divide the jira board into 5 vertical sections: Ready to Development, In
Development, Ready to Test, In Test and Done. Once a ticket is ready to move from one column to another,
move it accordingly. Provide the user name and password in the report so that the Lecturer can verify
your development activity directly from your Jira account. Prepare a nice summary of your Jira activity
which will include the screenshot of your Jira board and the burndown chart.