Incorporating classes
Using a class for both locations and objects will make things easier to
modify going forward. You don’t need to add any new commands, locations, or
objects, but your program should contain two classes:
class object {
...
};
class location {
...
};
location should contain all the details about a location, including the
text printed when you LOOK, all the directions you can GO from that
location and where they lead to, and all objects which are at that location.
objects, similarly, should contain the text printed when you LOOK at the
object, the name of the object (used with GET, DROP, and printed when you
take INVENTORY), and any other relevant information (e.g., whether a lamp
is on or off).
The player’s inventory and the contents of each location should now be represented
as vector<object>s. You should represent all the location in the game as a
vector<room>. Then, using an int current_room variable to keep track of
where the player is; the value of this variable is an index into the vector.
Functions for commands that apply to the current location (LOOK without a
noun, GO) should be turned into function members on the location class.
Commands for verbs which require a noun can stay as functions, since they
often need to know about both objects and locations.
Submitting
Save your source code file(s) into ~/projects/stage3/.