public class Environment
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
BURNER
The world object/agent types.
|
static java.lang.String |
COLLECTOR |
static java.lang.String |
DOWN |
static java.lang.String |
GARBAGE |
protected static Environment |
instance |
static java.lang.String |
LEFT |
protected java.util.Map |
name_objects
The agents (name -> agent info).
|
jadex.commons.SimplePropertyChangeSupport |
pcs
The helper object for bean events.
|
protected jadex.commons.collection.MultiCollection |
pos_objects
The garbages.
|
protected java.util.Random |
randgen
The random number generator.
|
static java.lang.String |
RIGHT |
protected int |
size
The size.
|
static java.lang.String |
UP
The directions.
|
Constructor and Description |
---|
Environment(int size)
Create an environment.
|
Modifier and Type | Method and Description |
---|---|
void |
addPropertyChangeListener(jadex.commons.beans.PropertyChangeListener listener)
Add a PropertyChangeListener to the listener list.
|
void |
addWorldObject(java.lang.String type,
java.lang.String name,
Position pos)
Add an object to the environment.
|
void |
burn(java.lang.String name)
Burn a piece of garbage.
|
static void |
clearInstance()
Clear the singleton instance.
|
void |
drop(java.lang.String name)
Drop a piece of garbage.
|
Position |
getBurnerPosition()
Get the position of a burner.
|
protected Position |
getFreePosition()
Get a free position on the map.
|
jadex.bdi.examples.garbagecollector_classic.WorldObject[] |
getGarbages(Position pos)
Get all world objects of a position.
|
int |
getGridSize()
Get the grid size.
|
static Environment |
getInstance(java.lang.String type,
java.lang.String name)
Get a singleton instance.
|
Position |
getPosition(java.lang.String name)
Get the position of an object.
|
protected Position |
getRandomPosition()
Get a free position on the map.
|
protected jadex.bdi.examples.garbagecollector_classic.WorldObject |
getRobot(java.lang.String name)
Get an robot for a name.
|
protected jadex.bdi.examples.garbagecollector_classic.WorldObject |
getWorldObject(java.lang.String name)
Get an world object for a name.
|
jadex.bdi.examples.garbagecollector_classic.WorldObject[] |
getWorldObjects()
Get the world objects.
|
protected jadex.bdi.examples.garbagecollector_classic.WorldObject[] |
getWorldObjects(Position pos)
Get all world objects of a position.
|
void |
go(java.lang.String name,
java.lang.String dir)
Go in a specific direction.
|
boolean |
hasGarbage(java.lang.String name)
Test if an agent has garbage.
|
boolean |
isBurnerPresent(Position pos)
Is a burner on the map.
|
boolean |
isDirty(Position pos)
Test if a position is dirty.
|
protected boolean |
isFree(Position pos)
Test if a position is free.
|
boolean |
pickup(java.lang.String name)
Pickup a piece of garbage.
|
void |
removePropertyChangeListener(jadex.commons.beans.PropertyChangeListener listener)
Remove a PropertyChangeListener from the listener list.
|
void |
setWorldObjects(jadex.bdi.examples.garbagecollector_classic.WorldObject[] objects)
Set the world objects.
|
public static final java.lang.String UP
public static final java.lang.String DOWN
public static final java.lang.String LEFT
public static final java.lang.String RIGHT
public static final java.lang.String BURNER
public static final java.lang.String COLLECTOR
public static final java.lang.String GARBAGE
protected int size
protected java.util.Map name_objects
protected jadex.commons.collection.MultiCollection pos_objects
protected java.util.Random randgen
public jadex.commons.SimplePropertyChangeSupport pcs
protected static volatile Environment instance
public static Environment getInstance(java.lang.String type, java.lang.String name)
public static void clearInstance()
public void addWorldObject(java.lang.String type, java.lang.String name, Position pos)
public void go(java.lang.String name, java.lang.String dir)
public void drop(java.lang.String name)
name
- The name of the agent that want to drop.public boolean pickup(java.lang.String name)
name
- The name of the agent that want to pick up.public void burn(java.lang.String name)
name
- The name of the agent that want to drop.public boolean isDirty(Position pos)
pos
- The position.public boolean hasGarbage(java.lang.String name)
name
- The agent name.public Position getPosition(java.lang.String name)
name
- The name of the agent.public int getGridSize()
public Position getBurnerPosition()
public boolean isBurnerPresent(Position pos)
pos
- The position to test.protected jadex.bdi.examples.garbagecollector_classic.WorldObject getWorldObject(java.lang.String name)
name
- The name of the world object.protected jadex.bdi.examples.garbagecollector_classic.WorldObject getRobot(java.lang.String name)
name
- The agents name.protected jadex.bdi.examples.garbagecollector_classic.WorldObject[] getWorldObjects(Position pos)
pos
- The position.public jadex.bdi.examples.garbagecollector_classic.WorldObject[] getGarbages(Position pos)
pos
- The position.public jadex.bdi.examples.garbagecollector_classic.WorldObject[] getWorldObjects()
public void setWorldObjects(jadex.bdi.examples.garbagecollector_classic.WorldObject[] objects)
protected Position getFreePosition()
protected Position getRandomPosition()
protected boolean isFree(Position pos)
public void addPropertyChangeListener(jadex.commons.beans.PropertyChangeListener listener)
listener
- The PropertyChangeListener to be added.public void removePropertyChangeListener(jadex.commons.beans.PropertyChangeListener listener)
listener
- The PropertyChangeListener to be removed.