Maze Mechanics

Every year I enter a contest to see if I can create a game in seven days. It must be a roguelike game. Usually I write it in a language that I am comfortable in such as C++. I only tried writing my game in Java once. It was disappointing to say the least.

I learned a lot of Java over the past over the last few months. I am ready to try my hand at a Java roguelike again. But first I thought I would practice with some roguelike library code. You know. I need to knock out some mundane stuff to be proficient for the real game design.

Right now I am wrapping up the basics of maze drawing. I got some rooms connected by halls. Good stuff. The only problem is that the user can navigate around the maze. When I get too close ot the side of the maze, I have some coding problems.

The maze display is based on an array of BufferedString objects. I just index into them based on where the player is on the maze. I keep the player in the center of the screen. So when the player reaches the edge of the maze, we are faced with drawing cells that do not exist in the StringBuffer.

Now an elegant solution would be to detect this and somehow append some virtual walls outside the edge of the maze. I might still opt for that grand solution. For now I am trying to hurry up and get stuff done. So I extend the edges of the maze in all directions to create an outside buffer. This ensures you can use the same dumb code to index into the BufferedStrings even when at the edge of the navigatable maze. Nice trick huh?