jas.space
Class DigitalTurtle

java.lang.Object
  extended by jas.space.AbstractTurtle
      extended by jas.space.DigitalTurtle
All Implemented Interfaces:
IColored, IGridPosition

public class DigitalTurtle
extends AbstractTurtle

TO DO Documentation.

Title: JAS

Description: Java Agent-based Simulation library

Copyright (C) 2002 Michele Sonnessa

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.

Author:
Michele Sonnessa


Field Summary
 
Fields inherited from class jas.space.AbstractTurtle
DEFALUT_COLOR, DIR_EAST, DIR_NORTH, DIR_NORTH_EAST, DIR_NORTH_WEST, DIR_SOUTH, DIR_SOUTH_EAST, DIR_SOUTH_WEST, DIR_WEST, MOVE_BOUND, MOVE_REFLECT, MOVE_TORUS
 
Constructor Summary
DigitalTurtle(int id, IObjGrid grid)
          Create a turtle with a given identifier on the given grid at position (0,0).
DigitalTurtle(int id, IObjGrid grid, int x, int y)
          Create a turtle with a given identifier on the given grid at the given position.
DigitalTurtle(int id, IObjGrid grid, int x, int y, java.awt.Color color)
          Create a turtle with a given identifier on the given grid at the given position.
 
Method Summary
 void forward(int steps)
          Make some steps forward, according the current heading.
 int getHeading()
          Return the current heading of the turtle.
 int getNextX(int steps)
          Return the new x coordinate walking the current heading direction for given steps.
 int getNextY(int steps)
          Return the new y coordinate walking the current heading direction for given steps.
 boolean leap(int steps)
          Make some steps forward, but moves only if the target position is empty.
 void setCardinalHeading(int directionType)
          Set the turtle's heading using a constant for cardinal points.
 void setHeading(int heading)
          Set the current heading.
 void setRandomHeading()
          Randomize the turtle's heading.
 void turnCardinalLeft(int steps)
           
 void turnCardinalRight(int steps)
           
 void turnLeft(int degrees)
          Change the current heading rotating it to the left.
 void turnRight(int degrees)
          Change the current heading rotating it to the right.
 
Methods inherited from class jas.space.AbstractTurtle
forward, getColor, getDistanceFrom, getID, getMovingType, getNextX, getNextY, getWorldHeight, getWorldWidth, getX, getY, leap, setColor, setIfEmptyXY, setMovingType, setX, setXY, setY
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DigitalTurtle

public DigitalTurtle(int id,
                     IObjGrid grid)
Create a turtle with a given identifier on the given grid at position (0,0).

Parameters:
id - The identifier for turtle.
grid - The grid upon the turtle moves.

DigitalTurtle

public DigitalTurtle(int id,
                     IObjGrid grid,
                     int x,
                     int y)
Create a turtle with a given identifier on the given grid at the given position.

Parameters:
id - The identifier for turtle.
x - The initial x coordinate of the turtle.
y - The initial y coordinate of the turtle.
grid - The grid upon the turtle moves.

DigitalTurtle

public DigitalTurtle(int id,
                     IObjGrid grid,
                     int x,
                     int y,
                     java.awt.Color color)
Create a turtle with a given identifier on the given grid at the given position. Set its color to the given color.

Parameters:
id - The identifier for turtle.
x - The initial x coordinate of the turtle.
y - The initial y coordinate of the turtle.
color - The initial color of the turtle.
grid - The grid upon the turtle moves.
Method Detail

forward

public void forward(int steps)
Description copied from class: AbstractTurtle
Make some steps forward, according the current heading.

Specified by:
forward in class AbstractTurtle
Parameters:
steps - The number of steps the turtle has to make.

getHeading

public int getHeading()
Description copied from class: AbstractTurtle
Return the current heading of the turtle.

Specified by:
getHeading in class AbstractTurtle
Returns:
The current heading.

getNextX

public int getNextX(int steps)
Description copied from class: AbstractTurtle
Return the new x coordinate walking the current heading direction for given steps. It uses the grid bound checking methods according to the turtle's current moving type.

Specified by:
getNextX in class AbstractTurtle
Parameters:
steps - The number of steps to move forward.
Returns:
The candidate x coordinate.

getNextY

public int getNextY(int steps)
Description copied from class: AbstractTurtle
Return the new y coordinate walking the current heading direction for given steps. It uses the grid bound checking methods according to the turtle's current moving type.

Specified by:
getNextY in class AbstractTurtle
Parameters:
steps - The number of steps to move forward.
Returns:
The candidate y coordinate.

leap

public boolean leap(int steps)
Description copied from class: AbstractTurtle
Make some steps forward, but moves only if the target position is empty.

Specified by:
leap in class AbstractTurtle
Parameters:
steps - The number of steps the turtle has to make.
Returns:
True only if the turtle has moved.

setCardinalHeading

public void setCardinalHeading(int directionType)
Description copied from class: AbstractTurtle
Set the turtle's heading using a constant for cardinal points.

Specified by:
setCardinalHeading in class AbstractTurtle
Parameters:
directionType - One of DIR_NORTH, DIR_NORTH_EAST, ... constant.

setHeading

public void setHeading(int heading)
Description copied from class: AbstractTurtle
Set the current heading.

Specified by:
setHeading in class AbstractTurtle
Parameters:
heading - The new heading.

setRandomHeading

public void setRandomHeading()
Description copied from class: AbstractTurtle
Randomize the turtle's heading. It gets a random number from 0 to 359 degrees. The random generator is synchronized with JAS randomizer.

Specified by:
setRandomHeading in class AbstractTurtle

turnCardinalLeft

public void turnCardinalLeft(int steps)
Specified by:
turnCardinalLeft in class AbstractTurtle

turnCardinalRight

public void turnCardinalRight(int steps)
Specified by:
turnCardinalRight in class AbstractTurtle

turnLeft

public void turnLeft(int degrees)
Description copied from class: AbstractTurtle
Change the current heading rotating it to the left.

Specified by:
turnLeft in class AbstractTurtle
Parameters:
degrees - The number of degrees to rotate the heading.

turnRight

public void turnRight(int degrees)
Description copied from class: AbstractTurtle
Change the current heading rotating it to the right.

Specified by:
turnRight in class AbstractTurtle
Parameters:
degrees - The number of degrees to rotate the heading.