{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}


38-Assignment-8-MazeRunner - CS107 Spring 2007 Handout 38...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
CS107 Handout 38 Spring 2007 May 30, 2007 Assignment 8: Maze Runner This great assignment was written by Julie Zelenski. Your final assignment is a chance to explore the wonderful world of object orientation and inheritance using Java. We’ve tested our solution on Solaris and on Mac OS X boxes, so we’re confident it’ll work there. You’re free to download the most recent version of the jdk, or use Eclipse if you’ve used that before. PC folks concerned you’re being left in the dark can follow Matt Spitz’s Cygwin tutorial at http://cs107.stanford.edu so you can ssh into an elaine machine and render a virtual desktop on your own computer. You can work however, wherever using whatever tools you want to, but ultimately you need to port everything back to the elaines, confirm they work there, and submit. Due: Wednesday, June 6 th at 11:59 p.m. You’ve mastered all things Kevin Bacon and RSS, so now you're ready for the ultimate programming challenge: video games! Your assignment should keep you entertained while giving you experience with designing and implementing objects that use inheritance and messaging to cooperate in one big multi-threaded object-oriented bowl of soup. When finished, it will look something like the following: Many thanks to CS107 alum Peter Westen who created the nifty icons you see above.
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
2 As a means of gradual introduction, this handout points out some strategies for which classes to tackle first and some development hints that should gently lead you on your way. A Cold, Cruel, Cartesian World MazeRunner is an invented video game loosely based on arcade games like LodeRunner and PacMan. The maze world is a two-dimensional grid of squares, some are empty, and others contain bricks or freezers or other such things. The world is populated by a number of creatures roaming about. As the game proceeds, each creature runs separately in its own thread and as its gets processor time, a creature looks around the world and can take some action based on its local state of affairs. There is one human player who runs around in the maze, scurrying about, jumping through hypersquares, eating energy apples, and digging through bricks—all under keyboard control by the user. The user's goal is to navigate the maze and get to the goal square before being tagged by any of the bad guys. Each time the human makes it to the goal square, the game advances to a level that all the more treacherous. The Squares Brick Hyper Freezer Ladder Goal Empty w/ apple Squares make up the fixed scenery of the world. Each square is either empty, or is occupied by a brick, a hyperjump, a freezer, a ladder, or the goal square. Squares never change for any given level. A square knows its location in the maze and is responsible for drawing itself and updating the display as needed when things in that square change. As part of drawing, the square draws the background, then asks each of the occupying creatures to draw themselves on top of that. Of course, it may need to draw an "energy apple" if the square contains one.
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}