Top Banner
GridWorld Case Study The Classes A Summary by Jim Mims
22

GridWorld Case Study The Classes A Summary by Jim Mims.

Mar 27, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: GridWorld Case Study The Classes A Summary by Jim Mims.

GridWorld Case Study

The Classes

A Summary by Jim Mims

Page 2: GridWorld Case Study The Classes A Summary by Jim Mims.

Contents

Tested Implementations (method bodies or definitions)

Tested APIs (application programming interfaces)

Not Tested

Page 3: GridWorld Case Study The Classes A Summary by Jim Mims.

Classes and Interfaces: Relationships

Page 4: GridWorld Case Study The Classes A Summary by Jim Mims.

Tested Implementations

AbstractGrid Contains the methods that are common to grid implementations.

BoundedGrid A rectangulr grid with a finite number of rows and columns.

BoxBug A BoxBug traces out a rectangular box of a given size.

Bug A Bug is an actor that an move and turn. It drops flowers as it moves.

ChameleonCritter A ChameleonCritter takes on the color of neighboring actors as it moves through the grid.

Page 5: GridWorld Case Study The Classes A Summary by Jim Mims.

Tested Implementations (continued)

Critter A critter is an actor that moves through its world, processing other actors in some way and then picking a new location

UnboundedGrid An UnboundedGrid is a rectangular grid with an unbounded number of rows and columns

Page 6: GridWorld Case Study The Classes A Summary by Jim Mims.

Tested APIs

Actor An Actor is an entity that can act. It has a color and direction.

Flower A Flower is an actor that darkens over time. Some actors drop flowers as they move.

Rock A Rock is an actor that does nothing. It is commonly used to block othre actors from moving.

Grid Grid provides an interface for a two-dimensional grid-like environment containing arbitrary objects.

Location A Location object represents the row and column of a location in a two-dimensional grid.

Page 7: GridWorld Case Study The Classes A Summary by Jim Mims.

Not Tested

ActorWorld An ActorWorld is occupied by actors.

BoxBugRunner This class runs a world that contains box bugs.

BugRunner This class runs a world that contains a bug and a rock, added at random locations.

ChameleonRunner This class runs a world that ocntains chameleon critters.

Page 8: GridWorld Case Study The Classes A Summary by Jim Mims.

Not Tested (continued)

CrabCritter A CrabCritter looks at a limited set of neighbors when it eats and moves.

CrabRunner This class runs a world that contains crab critters.

CritterRunner This class runs a world that contains critters.

World A world is the mediator between a grid and the GridWorld GUI.

Page 9: GridWorld Case Study The Classes A Summary by Jim Mims.

Summary

Tested Implementations: 7

Tested APIs: 5

Not Tested: 4

Page 10: GridWorld Case Study The Classes A Summary by Jim Mims.

The Classes - Methods

Page 11: GridWorld Case Study The Classes A Summary by Jim Mims.

Location Class: Implements Comparable (concrete)

public Location(int r, int c)public int getRow()public int getCol()public Location getAdjacentLocation(int direction)public int GetDirectionToward(Location target)public boolean equals(Object other)public int hashCode()public int compareTo(Object other)public String toString()

NORTH, EAST, SOUTH, WEST, NORTHEAST, SOUTHEAST, NORTHWEST, SOUTHWEST, LIEF, RIGHT, HALF_LEFT, HALF_RIGHT, FULL_CIRCLE, HALF_CIRCLE, AHEAD

Page 12: GridWorld Case Study The Classes A Summary by Jim Mims.

Grid Interface: uses Location

int getNumRowsint getNumCols)boolean isValidLocation loc)E put(Location loc, E obj)E remove(Location loc)E get(Location loc)ArrayList<Location> getOccupiedLocations)ArrayList<Location> getValidAdjacentLocations(Location loc)ArrayList<Location> getEmptyAdjacentLocations(Location loc)ArrayList<Location> getOccupiedAdjacentLocations(Location loc)ArrayList<E> getNeighbors(Location loc)

what is the difference between the last 2?

Page 13: GridWorld Case Study The Classes A Summary by Jim Mims.

AbstractGrid

Page 14: GridWorld Case Study The Classes A Summary by Jim Mims.

AbstractGrid: Implements Grid

public ArrayList<E> getNeighbors(Location loc)public ArrayList<Location> getValidAdjacentLocations(Location loc)public ArrayList<Location> getEmptyAdjacentLocation(Location loc)public ArrayList<Location> getOccupiedAdjacentLocations(Location loc)public Sgtring toString()

Page 15: GridWorld Case Study The Classes A Summary by Jim Mims.

BoundedGrid: extends AbstractGrid

public BoundedGrid(int rows, int cols)public int getNumRows()public int getNumCols()public boolean isValid(Location loc)public ArrayList<Location> getOccupiedLocations()public E get(Location loc)public E put(Location loc)public E remove(Location loc)

BoundedGrid: extends AbstractGrid

public UnBoundedGrid( )public int getNumRows()public int getNumCols()public boolean isValid(Location loc)public ArrayList<Location> getOccupiedLocations()public E get(Location loc)public E put(Location loc)public E remove(Location loc)

Page 16: GridWorld Case Study The Classes A Summary by Jim Mims.

Actor

Page 17: GridWorld Case Study The Classes A Summary by Jim Mims.

Actor uses Location and Grid

public Actor()public Color getColor()public void setColor(Color newColorpublic int getDirection()public voiid setDirection (int newDirection)public Grid<Actor> getGrid()public Location getLocation()public void putSelfInGrid(Grid<Actor> gr, Location loc)public void removeSelfFromGrid()public void moveTo(Location newLocation)public void act()public String toString()

Page 18: GridWorld Case Study The Classes A Summary by Jim Mims.

Critter extends Actor

public void act()public ArrayList<Actor> getActors()public void processActors(ArrayList<Actor> actorspublic ArrayList<Location> getMoveLocations()puboic Location selectMoveLocation(ArrayList<Location> locs)public void makeMove(Location loc

Page 19: GridWorld Case Study The Classes A Summary by Jim Mims.

ChameleonCritter extends Critter

public void processActors(rrayList<Actor> actors)public void makeMove(Location loc)

Page 20: GridWorld Case Study The Classes A Summary by Jim Mims.

CrabCritter extends Critter

Note tested

Page 21: GridWorld Case Study The Classes A Summary by Jim Mims.

Bug, Flower, and Rock

Page 22: GridWorld Case Study The Classes A Summary by Jim Mims.

Bug extends Actor

public Bug()public Bug(Color bugColor)public void act()public void turn()puiblic void move()public boolean canMove()

Flower extends Actor

public Flower()public Flower(Color initialColor)public void act()

Rock extends Actor

public Rock()public Rock(Color rockColor)public void act()