CSCE 790A: Problem Set 2

Due: Monday 26 February 2001

A long time ago text-only adventure games were very popular (especially those written by Infocom). In these games a player would move around a maze by issuing commands such as "north" or "west", and would be told what he saw. Of course, those games were all implemented so as to run on a single machine.

For this problem set you will implement a very simple adventure game. The "game" (if we can call it that) consists of a 10 by 10 grid. There are a number of players that can inhabit this this world. You will need to implement a maze class which holds references to all the players and keeps track of their position.

Unlike in the old adventure games, this game is real time, so it does not pause to wait for input from anyone. The clock ticks once every five seconds. After every tick the maze asks all players for their move, which can be either a move north, east, west, or south. The maze makes sure that nobody can leave the maze. After it has received all moves, it executes them and then tells all players what they see. The players see all the other players that are in their square. There can be any number of players in a square.

You will implement three types of player:

  1. The human player asks the user what move he wants to take, and also displays on the screen what the user sees.
  2. The box player is initiated in some position and does nothing
  3. The robot player moves randomly on each clock tick.

The most important part of this problem set is that both the maze and all the players must be distributed with RMI. That is, it should be possible to run every player and the maze on a different machine. Also, new players should be able to join an ongoing game.

Output: So that we can see what is going on, your maze should print out each step number and the locations of all the players. Meanwhile the human should print out what it sees on each step.

Handing it in:You will follow the same procedure as for PS1, using the same template README file. However, since the ability to start an RMI system is part of what you must learn from this PS, this time the instructions in the README will be graded. Specifically, your instructions must detail how to start one maze object, one human, one box, and one robot, with the maze running in one machine (A), the human in another (B), and the box and robot on a third (C). Remember, however, that your implementation must not rely on this particular object distribution.

Jose M. Vidal
Last modified: Wed Feb 21 15:28:18 -0500 2001