You are tasked with improving and designing part of the code for the Haunted House game. Please read this handout and the code provided on Moodle.
This assignment should take approximately 40 hours of design & implementation to complete. You will be given some class time (~ 4 hours) to collaborate and undertake the individual tasks. Organise and use your time wisely.
Play the game first!
To win the game, pick up five items (any item) from the ground by moving around the map and go back to when you started (Location 0). Use command “GET object” to get any object from the ground and “INVENTORY” to check how many items you currently have.
The first four tasks in this section can be completed by modifying only the code within the ProcessStatement() and Game() functions. This section typically requires knowledge on lists, loops and if’s.
Modify and display the Help message in the following fashion so it is easier for player to read and understand.
Help — Display all possible actions you can carry out in this game
Score — Display your current score
Inventory … etc — Display your inventory
2.Add a shortcut to all commands. If a command is one word, the shortcut should be made of the first letter and the last letter of the command. For example, hp for help, gt for get …etc. If the command is two words, the shortcut should be made of the first letter of the two words.
For example, od for open door …etc.
3.Create a cheat commands in the game so player can teleport to any location in the map. The name of the command has to be ‘tp’. Player has to entere a location number with the command e.g.tp 3will take player to location 3. If location number entered is not valid (not 0-63), player should stay at the same location and an error message should be displayed.
4.Modify the game so player can quit the game by entering ‘quit’. You can not use exit() or quit() functions in this task. You have to exit the while loop!
5.Create a cheat commands in the game so player can pick up any item he wants from any location in the map. You have to name this cheat command ‘give me’. If wrong item name is entered, it should display an appropriate message and nothing will be given.
WHAT DO YOU WANT TO DO NEXT? give me
POSSIBLE ITEMS TO GET:
PAINTING, RING, MAGIC SPELLS, GOBLET, SCROLL, COINS, STATUE, CANDLESTICK, MATCHES, VACUUM, BATTERIES, SHOVEL, AXE, ROPE, BOAT, AEROSOL, CANDLE, KEY
NAME THE ITEM YOU NEED: painting
PAINTING SUDDENLY APPEARED IN YOUR BAG
6.Make a menu with 3 options at the start of the game: New game, Continue and Quit. It should validate user’s input so anything other than these three commands are not accepted and need to be re-entered.
In addition to the knowledge required in section 1, this section requires knowledge on function, testing and file input/output.
7.Display your current location on the map with two asteriks (**). You need to modify the DisplayMap function for this task.
For example (current location is 2):
8.Add two new functionalities to the game: Save game and Load game. Player should be able to save the game state so that the game can be continued at a later stage (by loading it back). First you need to create two new commands: save and load.
What you need to save:
- Player’s current location,
- Player’s visited locations
- Player’s inventory.
9.Make a test plan for your game. It has to include 3 checkpoints for task 1, 2, 4 and 3 test cases for task 3, 5 and 6. A template for this test plan will be provided to you.
Test your game before you submit your code using this test plan and record the result on the plan.
10)Design and implement 3 mini-missions in the haunted house. This missions should involve player going to a special location on map, examining items, carrying out actions to find hints to win, new items or new exits. You have to document all 3 mini-missions in the documentation template given to you. You cannot reuse the ones that are already given to you in the code, but you can modify them to make your own.
a)The first mini-mission should involve player going to a special location on the map to examine something in order to find an item. The item should be hidden until the action is successfully carried out.
b)The second mini-mission should involve player going to another special location on the map and carry out an action with an item to reveal a new exit. The exit should be hidden until the action is successfully carried out.
For example, player has to go to the study to read map to discover a new exit to the east (new exit should be revealed after map is read!).
c)The third mini-mission should involve player going to two separate places to find two different items and perform an action with those two items (in the inventory) at a special location. When this mission is successfully carried out, player should win the game.
For example, player has to go to the storage to find vaccum machine and then go to the study to find heavy duty batteries and do start vaccuming to kill the ghost inside the Dark room.
Note. Player should be able to complete the game without reading any manual or documentation, so give enough hints along the way to player to keep the game flowing and interesting. Display hints to help player find key items and key places.