The game's architecture
The game uses several classes and interfaces. These are summarized here:
Character
: This represents the playerCommand
: This represents a command and its argumentsDirection
: This holds a direction, such as north or south, and the corresponding location you will arrive at for the directionFunctionalCommands
: This holds commands and executes themFunctionalZork
: This is the main class containing much of the game mechanicsGameElements
: This holds collections of game elements and the current locationItem
: This represents an itemLocation
: This represents a location in the gameNPC
: This represents an NPC
We will explore how each of these classes is implemented. For a few of the classes, we will not show the getter/setter methods. Otherwise, the critical elements of the classes will be explained.
Understanding the GameElements class
The GameElements
class is composed of HashMaps
for the game's locations, items, NPCs, and commands. In addition, the class holds a reference...