Class Nest

java.lang.Object
  |
  +--Nest

public class Nest
extends java.lang.Object

Stand: 09.07.2001


Field Summary
protected  Agent[] agent
           
static char AGENT
          Repräsentation eines Agenten
protected  AgentsWay[] agentsWays
           
protected  int[] genCounter
           
protected  Genom genom
           
static java.lang.String HEADER
           
static char JOKER
          Repräsentation einer Wildcard
static char LEER
          Repräsentation eines leeren Blocks
static java.lang.String NEWLINE
          Projektweite '\n'-Konstanten, systemabhängig
protected  int numberAgents
           
static char OUT
          Repräsentation eines Blocks ausserhalb der Nest
protected  Koord3D[] posAgent
           
protected  Koord3D posStart
           
protected  Koord3D sichtweite
           
static char STEIN
          Repräsentation eines bebauten Blocks
protected  char[][][] umgebung
           
protected  int viewSize
           
 
Constructor Summary
Nest(Genom genom, Koord3D size, int numbAgents, int viewSize, int crystallizationPoint)
          Dieser Konstruktor erwartet nur das Genom, das in den Agenten gesteckt werden soll.
Nest(int xsize, int ysize, int zsize, Genom genom, int numbAgents, int viewSize, int crystallizationPoint)
          Konstruktor, der x- und y-Ausdehnung der Nest und das Genom für den/die Agenten in dieser Nest erwartet.
 
Method Summary
protected  void createAndPositionNewAgent(int numberA, Koord3D pos, Blickfeld view, Knoten tree)
           
static void debug(java.lang.String msg)
           
 void finalize()
           
 AgentsWay getAgentsWay(int i)
          Hiermit kann die Position des Agenten verändert werden.
 Koord3D getCrystallizationPoint()
           
 Genom getGenom()
          Liefert das Genom des Agenten Geändert: ?
 int getHowOftenUsed_Gen(int index)
           
 int getNumberAgents()
           
 char getStateAtCoord(Koord3D where)
          Liefert die Art des Blocks an der angegebenen Position.
 int getStrategy()
          Vielleicht interessiert ja auch, welche Strategie gerade Verwendung findet.
protected  void initAgentsWays()
           
protected  void initNest(Genom genom, int numbAgents, boolean shallInitWays)
           
static void message(java.lang.String msg)
           
protected  void reInitNest()
           
 void reset()
          Löscht die Neststruktur.
protected  void resetNest(int xsize, int ysize, int zsize)
           
 Waypoint[] runOneRound()
           
protected  Waypoint runOneRound(int numberA)
          Lässt den Agenten eine Runde laufen.
 boolean saveNestAndGenom(java.lang.String filename)
          Speichert Informationen so, dass sie mit loadNestAndGenom rekonstruiert werden können.
protected  void setNumberAgents(int number)
           
protected  void setPosAgent(int numberA, Koord3D newPos)
          Hiermit kann die Position des Agenten verändert werden.
protected  void setRePosAgent(int numberA, Koord3D newPos)
           
 void setStrategy(int strategy)
          Hiermit kann man die Konfliktauflösungsstrategie bestimmen, mit der gleiche/ähnliche Pattern vorrang vor einander bekommen Geändert: 12.06.2001
 
Methods inherited from class java.lang.Object
, clone, equals, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

LEER

public static final char LEER
Repräsentation eines leeren Blocks

STEIN

public static final char STEIN
Repräsentation eines bebauten Blocks

AGENT

public static final char AGENT
Repräsentation eines Agenten

JOKER

public static final char JOKER
Repräsentation einer Wildcard

OUT

public static final char OUT
Repräsentation eines Blocks ausserhalb der Nest

NEWLINE

public static final java.lang.String NEWLINE
Projektweite '\n'-Konstanten, systemabhängig

HEADER

public static final java.lang.String HEADER

posAgent

protected Koord3D[] posAgent

sichtweite

protected Koord3D sichtweite

posStart

protected Koord3D posStart

agent

protected Agent[] agent

genom

protected Genom genom

viewSize

protected int viewSize

agentsWays

protected AgentsWay[] agentsWays

umgebung

protected char[][][] umgebung

numberAgents

protected int numberAgents

genCounter

protected int[] genCounter
Constructor Detail

Nest

public Nest(int xsize,
            int ysize,
            int zsize,
            Genom genom,
            int numbAgents,
            int viewSize,
            int crystallizationPoint)
Konstruktor, der x- und y-Ausdehnung der Nest und das Genom für den/die Agenten in dieser Nest erwartet. Geändert: 18.06.2001 z-Achse hinzugefügt 12.07.2001 viewSize wurde mit aufgenommen 13.07.2001 genCounter eingeführt 17.07.2001 die Art des CrystallizationPoints wurde berücksichtigt
Parameters:
xsize - Ausdehnung in x-Achse
ysize - Ausdehnung in y-Achse
zsize - Ausdehnung in z-Achse
genom - Genom, das in den Agenten gesteckt werden soll
numbAgents - die Anzahl der Agent, die in das Nest gesetzt werden sollen
viewSize - die Grösse des Blickfelds der Agenten
crystallizationPoint - die Art des Startpunkts: im Zentrum, in der Mitte (Decke), in der Ecke(0,0,0)

Nest

public Nest(Genom genom,
            Koord3D size,
            int numbAgents,
            int viewSize,
            int crystallizationPoint)
Dieser Konstruktor erwartet nur das Genom, das in den Agenten gesteckt werden soll. Geändert: 18.06.2001 auf 3D umgestellt mit Standardwert 02.07.2001 Multiagenten 12.07.2001 viewSize wurde mit aufgenommen
Parameters:
genom - Genom, das in den Agenten gesteckt werden soll
size - Grösse des Nests
numbAgents - die Anzahl der Agenten, die in die Nest sollen
viewSize - die Sichtweite
crystallizationPoint - Art des Startpunkts: im Zentrum, in der "Deckenmitte" oder in der Ecke (0,0,0)
Method Detail

finalize

public void finalize()
Overrides:
finalize in class java.lang.Object

setNumberAgents

protected void setNumberAgents(int number)

getNumberAgents

public int getNumberAgents()

reset

public void reset()
Löscht die Neststruktur. Das verwendete Genom bleibt jedoch erhalten. Geändert: 21.06.2001: initNest() -> reInitNest()

resetNest

protected void resetNest(int xsize,
                         int ysize,
                         int zsize)

initNest

protected void initNest(Genom genom,
                        int numbAgents,
                        boolean shallInitWays)

reInitNest

protected void reInitNest()

initAgentsWays

protected void initAgentsWays()

runOneRound

public Waypoint[] runOneRound()

runOneRound

protected Waypoint runOneRound(int numberA)
                        throws NoMoveLeftException
Lässt den Agenten eine Runde laufen. Dies geschieht so: Der Agent sieht sich seine Nest an, dann bestimmt er, ob er hier bauen soll oder nicht und setzt ggf. einen Stein. Die Nest merkt sich das (auch im agentsWay). Danach wird der Agent bewegt. Geändert: 19.06.2001 09.07.2001 einige Variablen eingespart (x,y,z, currentPos) 13.07.2001 genCounter eingeführt
Returns:
WayPoint Der Punkt im Nest, den der Agent gerade besucht hat.

getHowOftenUsed_Gen

public int getHowOftenUsed_Gen(int index)

setStrategy

public void setStrategy(int strategy)
Hiermit kann man die Konfliktauflösungsstrategie bestimmen, mit der gleiche/ähnliche Pattern vorrang vor einander bekommen Geändert: 12.06.2001
Parameters:
strategy - die gewünschte Strategie (0: Erste, 1: Zufällig, 2: Mit wenigsten Jokern, 3: Mit meisten Jokern)

getStrategy

public int getStrategy()
Vielleicht interessiert ja auch, welche Strategie gerade Verwendung findet. Geändert: 12.06.2001
Returns:
gerade verwendete Strategie

getAgentsWay

public AgentsWay getAgentsWay(int i)
Hiermit kann die Position des Agenten verändert werden. Geändert: ?
Returns:
AgentsWay den Weg, den der Agent bisher zurückgelegt hat. Darin enthalten ist die Information, wann er gebaut hat.

setPosAgent

protected void setPosAgent(int numberA,
                           Koord3D newPos)
Hiermit kann die Position des Agenten verändert werden. Geändert: ?
Parameters:
newPos - Koord3D mit der neuen Position

setRePosAgent

protected void setRePosAgent(int numberA,
                             Koord3D newPos)

getStateAtCoord

public char getStateAtCoord(Koord3D where)
Liefert die Art des Blocks an der angegebenen Position. Geändert: 18.06.2001 Rückgabewert jetzt char (Steffen)
Parameters:
where - zu untersuchende Position
Returns:
int Art des Blocks (siehe Konstanten oben)

createAndPositionNewAgent

protected void createAndPositionNewAgent(int numberA,
                                         Koord3D pos,
                                         Blickfeld view,
                                         Knoten tree)

saveNestAndGenom

public boolean saveNestAndGenom(java.lang.String filename)
Speichert Informationen so, dass sie mit loadNestAndGenom rekonstruiert werden können. (Da der Stock jetzt 3D ist, wird aus dem Stock nur ein Querschnitt visualisiert (zsize / 2).) Geändert: 18.06.2001 3D 03.07.2001 Multiagenten
Parameters:
filename - Dateiname (.txt) samt Verzeichnis
Returns:
ob das Speicher geklappt hat, oder nicht (IOException oder so)

getGenom

public Genom getGenom()
Liefert das Genom des Agenten Geändert: ?
Returns:
verwendetes Genom

getCrystallizationPoint

public Koord3D getCrystallizationPoint()

debug

public static void debug(java.lang.String msg)

message

public static void message(java.lang.String msg)