Maze generation
Before we can generate the walls of our maze, we need to determine how we are going to represent the maze in memory. In order to do this, we need to decide what kind of maze we will be creating.
In some games, we may want to construct the maze by hollowing corridors and rooms out of a solid block, so that each floor tile would either be open or impassable. In the case of Cube Chaser, we want all of the floor areas of the maze to be accessible, with walls between the floor tiles providing the challenge to navigate the maze. Instead of open and closed floor tiles, each floor tile will have four walls, each of which can be passable or impassable. We will define a class that describes an individual cell of the maze along with the walls it contains.