Below are the rules involved in the Programming of a Maze Game :
The maze is made out of walls and a path. The starting point of the maze is marked by the coordinates of the player. Similarly, the exit is marked as a dedicated coordinate. The goal of this program is to report the player's moves in the maze.
Write a program that reads an input file with a description of the maze, the start coordinates of the player, the coordinates of the exit, and a list of player moves. The file name shall be taken from the command line parameters of your program. (See Assignment 5.2 for how to do that.) The information from the file is supposed to be stored in suitable data structures (read: classes). Once the input file has been read, the maze shall be printed to the screen. Next, the list of player moves shall be executed. Finally, the maze shall be printed again, followed by a message whether or not the player has reached the exit.
Format of the input files:
Height and width of the maze
Layout of the maze ('l' denotes a wall, '.' denotes a path)
Row and column of the exit
Row and column of the player's start position
List of player moves ('u' denotes up, 'd' denotes down, 'l' denotes left, and 'r' denotes right)
The coordinates within the maze range from (0,0) to (height-1,width-1). The coordinate (0,0) is at the top left.
Example input file:
The corresponding output for processing this file is:
The player reached the exit!
In case of errors, your program shall print an error message and stop. All error messages begin with the string, "an error occurred: ", followed by one of the following messages:
"no input file name given"
"could not open input file "+ fileName
"could not read height and width of the maze"
read error from file
"could not read maze layout"
read error from file, or character is neither 'l' nor '.'
"could not read coordinates"
read error from file
item + " outside maze or off the path"
Here, item is either "player" or "exit"
This may happen in two cases:
with incorrect coordinates in the input file
with a move that makes the player run into a wall
move is none of 'l', 'r', 'u', 'd'
Your program must implement at least two classes. (But having more classes is appreciated!) For example, since the maze is a two dimensional structure, it might be useful to create a class to represent a coordinate. Another class could be used to handle the layout of the maze. Another one could handle all information regarding the current state of the game.