ITECH7201 Software Engineering: Maze Game Implementation Project

Verified

Added on  2022/11/28

|8
|447
|97
Project
AI Summary
This document presents a comprehensive solution for a Maze Game project developed as part of the ITECH7201 Software Engineering course. The game's functionality includes room-based navigation, NPC interactions, combat, and item management. The implementation leverages several design patterns, including Factory, Command, and Chain of Responsibility, to ensure clean and efficient code. The project utilized an Agile methodology, dividing development into small features for iterative progress. The solution details the game's design, implementation of core classes (NPC, Shop, Item), unit testing, and command handling. The project highlights the application of object-oriented design principles, input validation, and the use of collections. The report concludes with reflections on the learning experience, emphasizing the practical application of design patterns and software engineering principles.
Document Page
MazeGame
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
How the game play works
The game will work with the help of various classes implemented
in mazegame.control package.
The game will initialize with the hardcoded data and it will further
create M locations and n Shops.
There are two NPC in our game and these will randomly get
placed in various rooms.
The command handler will take a command and use the required
command class to get the required result.
If the player lands in any class with NPC in it, the player can
chose to fight using combat command. The player dies if his
health reaches 0 and the NPC dies if its power reaches 0.
Document Page
List of valid commands
Go
Quit
Move
Look
Listitems
Getitem
Dropitem
Equipitem
Unequipitem
Purchaseitem
Sellitem
Getmazestatus
Flee
Usepotion
combat
Document Page
How the game was implemented
Create the game design and add the required hardcoded data.
Create the NPC, Shop and Item classes required by the game.
Create the unit test cases for the classes and the commands
required in the game.
Implement all the commands one by one and run the junit test
case after implementing each class.
Remove any defects that are left
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Role of Design Patterns
Factory Pattern is being used in CommandHandler class to create
the required Command object on the basis of the entered
command. It has helped a lot in keeping our code clean and
efficient.
Command Pattern is used to implement various commands in our
game. Command class defines a method execute and all the
implementing classes are then implementing this method. It
helped us a lot in segregating the code of different commands.
Chain Of Responsibility design pattern is used in implementing
the commandhandler class. This handler is responsible for
handling all the commands and give us the required results.
Document Page
Development Methodology used
Made use of Agile Methodology.
All the application development process was divided into various
small features.
The features were divided into the two team members.
Each team member was responsible for delivering his features.
This methodology helped us a lot in completing the project in the
defined time. We were able to implement all the required
features in the given time with the help of this software
development methodology.
Document Page
Conclusion
This project revolves around a maze game and taught us a lot of
Programing Aspects.
Design patterns are used in this solution in various places.
OOP design is used for developing the application.
Input validation and Collections are used.
We learnt about the agile methodology.
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Thanks
Any Questions ?
chevron_up_icon
1 out of 8
circle_padding
hide_on_mobile
zoom_out_icon
[object Object]