|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--Agent
Die zentrale Klasse des Modells.
Field Summary | |
private int |
age
das Alter (in Runden) |
private AgentMonitor |
agentMonitor
das Fenster zur Anzeige von Informationen zum Agenten, null falls keines geöffnet |
static int |
agentNum
die Anzahl der (vom Benutzer) geschaffenen Agenten |
private java.util.Vector |
agentsInRange
eine Liste aller Agenten im Blickfeld |
private Agent |
bestCoordinator
der Koordinator mit der bisher besten Bewertung (der immernoch koordiniert), null falls keiner |
private float |
bestCoordinatorValue
die Bewertung dieses Koordinators |
private int |
birthDay
die Runde, in der der Agent geboren wurde |
private float |
breedingWeight
Gewichtung des Bedürfnisses sich fortzupflanzen |
boolean |
canBreed
kann sich der Agent in dieser Runde vermehren |
boolean |
canEndCoordinating
kann der Agent in dieser Runde sein Koordinatorendasein beenden |
boolean |
canGather
kann der Agent in dieser Runde Nahrung sammeln |
boolean |
canMove
kann sich der Agent in dieser Runde bewegen |
boolean |
canStartCoordinating
kann der Agent in dieser Runde Koordinator werden |
boolean |
canSubordinate
kann sich der Agent in dieser Runde einem Koordinator unterordnen |
boolean |
canUnsubordinate
kann der Agent in dieser Runde eine Unterordnung beenden |
private float |
childFood
soviel Nahrung gibt er bei jeder Vermehrung an seine Nachkommen weiter |
private java.util.Vector |
children
die Liste der direkten Nachkommen |
private Agent |
coordinator
der Koordinator des Agenten, oder null, falls der Agent nicht koordiniert wird |
private boolean |
coordinatorInRange
gibt es einen Koordinator in Reichweite |
private float |
curiosityWeight
Gewichtung des Bedürfnisses Neugier |
private int |
deathDay
die Runde, in der der Agent gestorben ist, -1 wenn er noch lebt |
private float |
eatFoodPR
soviel Nahrung verbraucht der Agent jede Runde |
private float |
food
der aktuelle Nahrungsvorrat |
private float |
gatherAmount
die Maximalmenge der pro Runde gesammelten Nahrung |
private float |
gatherRest
soviel Nahrung belässt der Agent mindestens auf dem Feld |
private float |
influenceWeight
Gewichtung des Bedürfnisses Einfluss (auf Untergebene) auszuüben |
private boolean |
isCoordinator
ist der Agent zur Zeit Koordinator |
private java.util.Vector |
knownCoordinators
die Liste von allen dem Agenten bekannten noch aktiven Koordinatoren |
private java.util.Vector |
knownCoordinatorsValues
die Bewertungen derselben |
private java.lang.String |
lastAction
womit war der Agent gerade beschäftigt |
private Memory |
memory
das Gedächtnis |
private float |
memoryMaxAge
nur solange kann er Informationen über Felder in seinem Gedächtnis behalten |
private MemoryMonitor |
memoryMonitor
das Fenster zu Anzeige des Gedächtnisses, null falls keines geöffnet |
private java.lang.String |
name
der eindeutige name, mit Hinweisen auf die Vorfahren |
private int |
numOfChildren
die Anzahl an direkten Nachkommen |
private Agent |
parent
der Eltern-Agent |
private float |
planningRange
Informationen über Felder bis zu diesem Abstand bezieht der Agent in seine Planungen mit ein |
private float |
pubertyAge
in diesem Alter wird der Agent fruchtbar |
private Satisfaction |
sat
die Satisfaction des Agenten (siehe dort) |
int |
startCoordinatingDate
in dieser Runde wurde der Agent Koordinator |
private java.util.Vector |
subordinates
die Liste der Untergebenen (falls der Agent koordiniert) |
int |
subordinationDate
in dieser Runde ordnete sich der Agent dem aktuellen Koordinator unter |
private float |
subordinationStartValue
mit diesem Nahrungsvorrat startete der Agent seine aktuelle Unterordnung |
private float |
survivalWeight
Gewichtung des Bedürfnisses zu Überleben |
private java.awt.Point |
target
das vom Koordinator ermittelte Zielfeld, null falls keines oder falls es schon erreicht ist |
private java.util.Vector |
targets
die Liste der Zielfelder der Untergebenen |
private float |
viewingRange
Felder bis zu diesem Abstand kann er wahrnehmen |
private float |
wealthWeight
Gewichtung des Bedürfnisses nach Reichtum |
private java.awt.Point |
whereToMove
auf welches Feld geht der nächste Schritt |
private int |
x
die aktuelle X-Koordinate |
private int |
y
die aktuelle Y-Koordinate |
Constructor Summary | |
Agent(Agent parent)
Erschafft einen neuen Agenten. |
Method Summary | |
void |
breed()
Der Agent pflanzt sich fort. |
java.util.Enumeration |
children()
Liefert eine Aufzählung aller direkten Nachkommen. |
void |
coordinationTerminated()
Hiermit wird einem Untergebenen das Ende der Koordination mitgeteilt. |
void |
coordinatorDied()
Hiermit wird einem Untergebenen der Tod seines Koordinators mitgeteilt. |
int |
decide()
Führt eine Entscheidung herbei, was in dieser Runde zu tun ist. |
private void |
endCoordinating()
Der Agent beendet seinen Status als Koordinator |
void |
gather()
Der Agent sammelt Nahrung. |
int |
getAge()
Liefert das Alter des Agenten zurück. |
boolean |
getAllowsChildren()
Liefert zurück, ob es dem Agenten erlaubt ist Nachwuchs in die Welt zu setzen. |
float |
getBestCoordinatorValue()
Liefert die Bewertung des besten Koordinators den der Agent bisher hatte. |
int |
getBirthDay()
Liefert die Nummer der Runde, in der der Agent geboren (oder geschaffen) wurde |
javax.swing.tree.TreeNode |
getChildAt(int i)
Liefert das Kind mit dem übergebenen Index. |
int |
getChildCount()
Liefert die Zahl der Kinder. |
int |
getChildFood()
Liefert den Wert des Parameters childFood (Nahrungmenge für den Nachwuchs) |
java.awt.Color |
getColor()
Der Agent gibt die Farbe zurück, in der er gerne gezeichnet würde. |
Agent |
getCoordinator()
Liefert den Koordinator des Agenten zurück, null falls keiner existiert. |
float |
getCoordinatorValue()
Die aktuelle Bewertung des aktuellen Koordinators des Agenten. |
int |
getDeathDay()
Liefert die Nummer der Runde, in der der Agent gestorben ist. |
java.lang.String |
getDebugInfo()
Liefert fürs Debuggen hilfreiche Informationen zum Agenten |
float |
getEatFoodPR()
Liefer den Wert des Parameters eatFoodPR (Nahrungsverbrauch pro Runde). |
float |
getFood()
Liefert den aktuellen Nahrungsvorrat des Agenten zurück |
float |
getGatherAmount()
Liefert die Nahrungsmenge, die ein Agent maximal pro Runde sammelt. |
float |
getGatherRest()
Liefert die Nahrungsmenge, die ein Agent mindestens auf einem Feld belässt. |
int |
getIndex(javax.swing.tree.TreeNode child)
Liefert den Index des übergebenen Kindes. |
java.lang.String |
getLastAction()
Sagt, welche Aktion der Agent gerade getan hat. |
java.lang.String |
getLongInfo()
Liefert ausführliche Informationen zum Agenten |
java.lang.String |
getMediumInfo()
Liefert etwas ausführlichere Informationen zum Agenten |
Memory |
getMemory()
Liefert das Gedächtnis des Agenten. |
float |
getMemoryMaxAge()
Liefert das maximale Alter von Informationen im Memory, danach werden diese vergessen. |
float[] |
getMutableValues()
Liefert ein Array mit den potentiell durch Mutation veränderlichen Werten des Agenten. return array mit 13 float Werten. |
java.lang.String |
getName()
Liefert den Namen des Agenten. |
static int |
getNum()
Liefert die Anzahl der bisher geschaffenen (nicht der geborenen) Agenten. |
int |
getNumOfChildren()
Liefert die Zahl der Kinder des Agenten. |
int |
getNumOfSubordinates()
Liefert die Zahl der Untergebenen. |
javax.swing.tree.TreeNode |
getParent()
Liefert den Elternagenten. |
int |
getPlanningRange()
Liefert den Wert des Parameters planningRange ("geistige Sichtweite") |
int |
getPubertyAge()
Liefert den Wert des Parameters pubertyAge (ab dann ist der Agent fruchtbar) |
Satisfaction |
getSatisfaction()
Liefert das Satisfaction-Objekt des Agenten zurück. |
java.lang.String |
getShortInfo()
Liefert die wesentlichen Informationen des Agenten |
java.awt.Point |
getTarget()
Liefert das aktuelle Zielfeld des Agenten, oder null falls er nicht koordiniert wird oder schon am Ziel ist. |
java.awt.Point |
getTarget(Agent client,
int range)
Anfrage an den Koordinator, der für den sendenden Agenten das optimale Zielfeld bestimmt. |
int |
getViewingRange()
Liefert den Wert des Parameters viewingRange (Sichtweite) |
float[] |
getWeights()
Liefert die Werte für die Gewichtungen der Bedürfnisse untereinander. |
int |
getX()
Liefert die aktuelle X-Koordinate das Agenten. |
int |
getY()
Liefert die aktuelle Y-Koordinate das Agenten. |
void |
giveFood(float amount)
Erlaubt dem Empfänger die übergebene nahrungsmenge seinem Vorrat hinzuzufügen. |
void |
go()
Der Agent ist dran. |
boolean |
hasCoordinator()
Hat der Agent einen Koordinator oder nicht? |
boolean |
hasTarget()
Hat der Agent ein Zielfeld? |
void |
insert(javax.swing.tree.MutableTreeNode child,
int index)
Trägt ein neues Kind beim Agenten ein. |
boolean |
isAlive()
Lebt der Agent noch? |
boolean |
isCoordinator()
Ist der Agent zur Zeit im "Koordiniermodus". |
boolean |
isLeaf()
Ist der Agent ein Blatt im AgentTree (hat er Kinder). |
boolean |
isTarget(java.awt.Point p)
Liefert true, falls das Feld Zielfeld eines Untergebenen des Koordinators ist, false sonst. |
boolean |
isVisible()
Soll der Agent dargestellt werden? |
void |
lookAround(int range)
Nimmt die nähere Umgebung des Agenten wahr. |
void |
move(java.awt.Point where)
Der Agent bewegt sich auf die parametrisierten Koordinaten. |
private void |
mutateAndSetParameters(Agent child)
Die Parameter, die der Mutation unterliegen werden im Rahmen des Modells mutiert und dem neuen Agenten zugewisen. |
void |
remove(int index)
nicht implementiert |
void |
remove(javax.swing.tree.MutableTreeNode node)
nicht implementiert |
void |
removeAgent()
|
void |
removeAgentMonitor()
Schliesst den AgentMonitor des Agenten. |
void |
removeFromParent()
nicht implementiert |
void |
removeMemoryMonitor()
Schliesst den MemoryMonitor des Agenten. |
void |
rest()
Der Agent tut einfach nix. |
void |
setAge(int a)
Legt das Alter des Agenten fest. |
boolean |
setAgentMonitor()
Öffnet ein Fenster, um den aktuelle Informationen des Agenten anzuzeigen. |
void |
setDeathDay(int dd)
Legt die Runde fest, in der der Agent gestorben ist. |
void |
setDefaultParameters()
Setzt die individuellen Parameter auf die im Modell festgelegten Defaultwerte. |
void |
setFood(float food)
Setzt den Nahrungsvorrat des Agenten auf den übergebenen Wert |
boolean |
setMemoryMonitor()
Öffnet ein Fenster, um den Gedächtnisinhalt des Agenten anzuzeigen. |
void |
setName(java.lang.String name)
Setzt den Namen des Agenten. |
void |
setParameters(float eatFoodPR,
float pubertyAge,
float gatherAmount,
float gatherRest,
float childFood,
float memoryMaxAge,
float viewingRange,
float planningRange,
float survivalWeight,
float wealthWeight,
float curiosityWeight,
float breedingWeight,
float influenceWeight)
Legt die individuellen Werte für die Parameter des Agenten fest. |
void |
setParent(javax.swing.tree.MutableTreeNode newParent)
legt einen neuen Elternknoten fest |
void |
setUserObject(java.lang.Object object)
nicht implementiert |
void |
setX(int x)
Legt die X-Koordinate des Agenten fest. |
void |
setY(int y)
Legt die Y-Koordinate des Agenten fest. |
void |
showMonitors()
Bringt eventuell vorhandene MonitorFenster des Agenten in den Vordergrund. |
private void |
startCoordinating()
Der Agent wechselt in den Status eines Koordinators. |
private void |
subordinate()
Hiermit ordnet sich der Agent dem Koordinatir unter, den er sich ausgesucht hat. |
void |
subordinateToCoordinator(Agent sub)
Diese Methode wird an den Koordinator geschickt, um die Unterordnung perfekt zu machen. |
java.lang.String |
toString()
Liefert den Namen des Agenten. |
private void |
unsubordinate()
Hiermit beendet ein Untergebener diesen Zustand (der des Koordiniertwerdens) |
void |
unsubordinateFromCoordinator(Agent sub)
Hier wieder das Pendant auf Seiten des Koordinators, dem mitgeteilt wird, dass ein Untergebener die Beziehung beendet. |
Methods inherited from class java.lang.Object |
|
Field Detail |
public static int agentNum
private float food
private int age
private int birthDay
private int deathDay
private java.lang.String name
private int x
private int y
private Memory memory
private MemoryMonitor memoryMonitor
private AgentMonitor agentMonitor
private int numOfChildren
private java.awt.Point whereToMove
private Satisfaction sat
private java.lang.String lastAction
private java.util.Vector children
private Agent parent
private boolean isCoordinator
private Agent coordinator
private java.awt.Point target
private java.util.Vector agentsInRange
private Agent bestCoordinator
private float bestCoordinatorValue
private boolean coordinatorInRange
private java.util.Vector knownCoordinators
private java.util.Vector knownCoordinatorsValues
private java.util.Vector subordinates
private java.util.Vector targets
public boolean canMove
public boolean canGather
public boolean canBreed
public boolean canSubordinate
public boolean canUnsubordinate
public boolean canStartCoordinating
public boolean canEndCoordinating
public int startCoordinatingDate
public int subordinationDate
private float subordinationStartValue
private float eatFoodPR
private float pubertyAge
private float gatherAmount
private float gatherRest
private float childFood
private float memoryMaxAge
private float viewingRange
private float planningRange
private float survivalWeight
private float wealthWeight
private float curiosityWeight
private float breedingWeight
private float influenceWeight
Constructor Detail |
public Agent(Agent parent)
parent
- der Eltern-Agent.Method Detail |
public static int getNum()
public void go()
public void lookAround(int range)
range
- Sichtweite in alle acht Richtungen.public int decide()
public void move(java.awt.Point where)
where
- ein Punkt mit den absoluten Koordinaten des Zielfeldes.public void rest()
public void gather()
public void breed()
public java.awt.Point getTarget(Agent client, int range)
client
- der Agent, für den das Ziel bestimmt ist.range
- seine Reichweite, innerhalb derer das Ziel liegen muss.private void subordinate()
public void subordinateToCoordinator(Agent sub)
sub
- der Agent der sich unterordnet.private void unsubordinate()
public void unsubordinateFromCoordinator(Agent sub)
sub
- der Agent, der die Unterordnung beendet.private void startCoordinating()
private void endCoordinating()
public void coordinationTerminated()
public void coordinatorDied()
private void mutateAndSetParameters(Agent child)
child
- der Nachwuchs, dem die neuen Werte zugewiesen werden.public float[] getMutableValues()
public java.awt.Color getColor()
public boolean isAlive()
public boolean isCoordinator()
public int getNumOfSubordinates()
public Agent getCoordinator()
public float getBestCoordinatorValue()
public float getCoordinatorValue()
public java.awt.Point getTarget()
public boolean hasCoordinator()
public boolean hasTarget()
public boolean isTarget(java.awt.Point p)
die
- Koordinaten des fraglichen Feldes als Pointpublic boolean isVisible()
public float getMemoryMaxAge()
public float getGatherAmount()
public float getGatherRest()
public float[] getWeights()
public void setParameters(float eatFoodPR, float pubertyAge, float gatherAmount, float gatherRest, float childFood, float memoryMaxAge, float viewingRange, float planningRange, float survivalWeight, float wealthWeight, float curiosityWeight, float breedingWeight, float influenceWeight)
eatFoodPR
- soviel Nahrung verbraucht der Agent pro RundepubertyAge
- ab diesem Alter kann sich der Agent vermehrengatherAmount
- maximal diese Nahrungsmenge sammelt der Agent pro RundegatherRest
- mindestens diese Nahrungsmenge belässt der Agent auf dem FeldchildFood
- soviel Nahrung gibt der Agent an jeden Nachkommen weitermemoryMaxAge
- das maximale Alter von Informationem im Gedächtnis (Memory)viewingRange
- alle Felder bis zu diesem Abstand kann der Agent wahrnehmenplanningRange
- alle Informationen über Felder bis zu diesem Abstand fließen in die Planung einsurvivalWeight
- Gewichtung des Bedürfnis ÜberlebenwealthWeight
- Gewichtung des Bedürfnis ReichtumcuriosityWeight
- Gewichtung des Bedürfnis NeugierbreedingWeight
- Gewichtung des Bedürfnis FortpflanzunginfluenceWeight
- Gewichtung des Bedürfnis Einflusspublic void setDefaultParameters()
public void setName(java.lang.String name)
name
- der neue Name des Agenten.public java.lang.String getName()
public java.lang.String getShortInfo()
public java.lang.String getMediumInfo()
public java.lang.String getLongInfo()
public java.lang.String getDebugInfo()
public int getBirthDay()
public void setDeathDay(int dd)
der
- Todestag des Agentenpublic int getDeathDay()
public Memory getMemory()
public void setX(int x)
x
- (0 <= x < fieldsX)public int getX()
public void setY(int y)
y
- (0 <= y < fieldsY)public int getY()
public void setFood(float food)
public void giveFood(float amount)
public float getFood()
public float getEatFoodPR()
public int getViewingRange()
public int getPlanningRange()
public void setAge(int a)
public int getAge()
public int getChildFood()
public int getPubertyAge()
public int getNumOfChildren()
public boolean setMemoryMonitor()
public boolean setAgentMonitor()
public void removeMemoryMonitor()
public void removeAgentMonitor()
public void showMonitors()
public Satisfaction getSatisfaction()
public java.lang.String getLastAction()
public java.lang.String toString()
toString
in class java.lang.Object
public void removeAgent()
public java.util.Enumeration children()
children
in interface javax.swing.tree.TreeNode
public boolean getAllowsChildren()
getAllowsChildren
in interface javax.swing.tree.TreeNode
public javax.swing.tree.TreeNode getChildAt(int i)
getChildAt
in interface javax.swing.tree.TreeNode
i
- der Index des Gesuchten Kindespublic int getChildCount()
getChildCount
in interface javax.swing.tree.TreeNode
public int getIndex(javax.swing.tree.TreeNode child)
getIndex
in interface javax.swing.tree.TreeNode
public javax.swing.tree.TreeNode getParent()
getParent
in interface javax.swing.tree.TreeNode
public boolean isLeaf()
isLeaf
in interface javax.swing.tree.TreeNode
public void insert(javax.swing.tree.MutableTreeNode child, int index)
insert
in interface javax.swing.tree.MutableTreeNode
public void remove(int index)
remove
in interface javax.swing.tree.MutableTreeNode
public void remove(javax.swing.tree.MutableTreeNode node)
remove
in interface javax.swing.tree.MutableTreeNode
public void removeFromParent()
removeFromParent
in interface javax.swing.tree.MutableTreeNode
public void setParent(javax.swing.tree.MutableTreeNode newParent)
setParent
in interface javax.swing.tree.MutableTreeNode
public void setUserObject(java.lang.Object object)
setUserObject
in interface javax.swing.tree.MutableTreeNode
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |