Class Agent

java.lang.Object
  extended bySimpleTurtle
      extended byTurtle
          extended byAgent
Direct Known Subclasses:
BirdAgent, CrowdAgent, DEAgent, DeerAgent, DSAgent, EggAgent, NBDAgent, PersonAgent, PoliticalAgent, WolfAgent

public class Agent
extends Turtle

Class that represents a general Agent. We are designing to offer more flexibility than one might expect to use.

Author:
Mark Guzdial guzdial@cc.gatech.edu

Field Summary
protected static int MAXSPEED
          class constant for top speed (max num steps can move in a timestep)
 Picture myPict
           
protected static double PROB_OF_STAY
          class constant for probability of NOT turning
protected static Random randNumGen
          random number generator
protected  Simulation simulation
          My simulation
protected  int speed
          My current speed
 
Constructor Summary
Agent(int x, int y, ModelDisplay modelDisplayer, Simulation thisSim)
          Constructor that takes the x and y and a model display to draw it on
Agent(ModelDisplay modelDisplayer, Simulation thisSim)
          Constructor that takes the model display (the original position will be randomly assigned)
 
Method Summary
 void act()
          Method to act during a time step Default is to pick a random direction and move some random amount up to top speed
 void act(int t)
          act() with a timestep
 int countInRange(double range, LinkedList list)
          Method to count the number of agents within the range that are on the given list
 void die()
          Method that handles when an Agent dies
 Agent getClosest(double distance, LinkedList list)
          Method to get the closest agent within the passed distance to this agent but NOT this agent.
 Simulation getSimulation()
           
 int getSpeed()
           
 void init(Simulation thisSim)
          Method to initialize the new wolf object
 void setSpeed(int velocity)
          Accessors
 
Methods inherited from class Turtle
square
 
Methods inherited from class SimpleTurtle
backward, drawInfoString, drop, forward, forward, getBodyColor, getDistance, getHeading, getInfoColor, getModelDisplay, getName, getPen, getPenColor, getPenWidth, getPicture, getShellColor, getShowInfo, getXPos, getYPos, hide, isPenDown, isVisible, moveTo, paintComponent, penDown, penUp, setBodyColor, setColor, setHeading, setInfoColor, setModelDisplay, setName, setPen, setPenColor, setPenDown, setPenWidth, setPicture, setShellColor, setShowInfo, setVisible, show, toString, turn, turnLeft, turnRight, turnToFace, turnToFace, updateDisplay
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

myPict

public Picture myPict

PROB_OF_STAY

protected static final double PROB_OF_STAY
class constant for probability of NOT turning

See Also:
Constant Field Values

MAXSPEED

protected static final int MAXSPEED
class constant for top speed (max num steps can move in a timestep)

See Also:
Constant Field Values

randNumGen

protected static Random randNumGen
random number generator


speed

protected int speed
My current speed


simulation

protected Simulation simulation
My simulation

Constructor Detail

Agent

public Agent(ModelDisplay modelDisplayer,
             Simulation thisSim)
Constructor that takes the model display (the original position will be randomly assigned)

Parameters:
modelDisplayer - thing that displays the model
thisSim - my simulation

Agent

public Agent(int x,
             int y,
             ModelDisplay modelDisplayer,
             Simulation thisSim)
Constructor that takes the x and y and a model display to draw it on

Parameters:
x - the starting x position
y - the starting y position
modelDisplayer - the thing that displays the model
thisSim - my simulation
Method Detail

setSpeed

public void setSpeed(int velocity)
Accessors


getSpeed

public int getSpeed()

getSimulation

public Simulation getSimulation()

init

public void init(Simulation thisSim)
Method to initialize the new wolf object


die

public void die()
Method that handles when an Agent dies


getClosest

public Agent getClosest(double distance,
                        LinkedList list)
Method to get the closest agent within the passed distance to this agent but NOT this agent. We'll search the input list of the kind of objects to compare to.

Parameters:
distance - the distance to look within
list - the list of agents to look at
Returns:
the closest agent in the given distance or null

countInRange

public int countInRange(double range,
                        LinkedList list)
Method to count the number of agents within the range that are on the given list

Parameters:
range - the number of steps within which to consider agents
list - of agents to consider
Returns:
the number of agents within range.

act

public void act(int t)
act() with a timestep


act

public void act()
Method to act during a time step Default is to pick a random direction and move some random amount up to top speed