The environments that will be simulated in this project are
two-dimensional ``gridworlds''. A gridworld is just a set of
coordinates arranged on a rectangular grid - essentially,
the integer grid points on a 2-d Cartesian plane. Unlike a Cartesian
plane, however, the world here can have different topologies to
describe different environments. For example, the system might model
worlds that are bounded 2-d rectangles, infinite grids, torii,
spheres, or many other more complex topologies.
The WORLD SIMULATOR employs an internal object of type GridWorld2d<T>to store its representation of the world MAP. A concrete implementation of GridWorld2d<T>will implement a specific topology, and an instance of that concrete class will have specific dimensions. For example, a RectangleGridWorld2d<T> represents all possible bounded rectangular gridworlds, while
GridWorld2d<T> gwInst=new RectangularGridWorld2d<T>(20,30);
would be a bounded rectangular gridworld that is 20 units wide in the
In order to support a wide variety of different MAP types, including different terrain/obstacle types, GridWorld2d<T>is a Java generic. The type parameter, T, is filled in to instantiate the GridWorld2d<T>for a specific application. For the JRoboExplorerproject, the GridWorld2d<T>will be instantiated with different terrain/obstacle types.
For Milestone 2 (Section
), the designer MUST provide two
different GridWorld2d<T>implementations; for extra credit, a third can be
implemented as well:
Terran Lane 2005-10-18