|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.RoboBall.Player
Eine abstrakte Basisklasse für alle Spieler.
| Field Summary | |
static int |
BALL
Symbolische Konstante für ein Feld, auf dem der Ball liegt |
static int |
DOWN
Symbolische Konstante für 'Runter' |
static int |
FREE
Symbolische Konstante für ein leeres Feld |
static int |
HORIZONTAL
Maske für 'Links' oder 'Rechts' |
static int |
LEFT
Symbolische Konstante für 'Links' |
static int |
MY_TEAM
Symbolische Konstante für ein Feld, auf dem ein Roboter vom gleichen Team steht |
static int |
NOTHING
Symbolische Konstante für 'Nichts' |
static int |
OTHER_TEAM
Symbolische Konstante für ein Feld, auf dem ein Roboter vom gegnerischen Team steht |
static int |
RIGHT
Symbolische Konstante für 'Rechts' |
static int |
UP
Symbolische Konstante für 'Hoch' |
static int |
VERTICAL
Maske für 'Hoch' oder 'Runter' |
static int |
WALL
Symbolische Konstante für ein Feld, welches außerhalb des regulären Spielfeldes liegt |
| Constructor Summary | |
Player()
|
|
| Method Summary | |
protected int |
ballAround(int x,
int y)
Fragt ab, ob der Ball neben einem bestimmten Feld liegt. |
protected int |
ballAround(java.awt.Point pos)
Fragt ab, ob der Ball neben einem bestimmten Feld liegt. |
protected org.RoboBall.SoccerAction |
canScoreGoal()
Prüft, ob und mit welcher Aktion dieser Roboter ein Tor machen könnte. |
protected org.RoboBall.SoccerAction |
canScoreGoal(int x,
int y)
Prüft, ob und mit welcher Aktion ein Roboter auf einem bestimmten Feld ein Tor machen könnte. |
protected org.RoboBall.SoccerAction |
canScoreGoal(java.awt.Point pos)
Prüft, ob und mit welcher Aktion ein Roboter auf einem bestimmten Feld ein Tor machen könnte. |
protected java.awt.Point[] |
findRobots(int team)
Findet alle Roboter aus einem Team. |
protected java.awt.Point[] |
findRobotsOfClass(java.lang.String className)
Findet alle befreundeten Roboter einer bestimmten Klasse. |
protected java.awt.Point[] |
findRobotsOfClasses(java.lang.String[] classNames)
Findet alle befreundeten Roboter einer bestimmten Klasse. |
protected java.awt.Point |
getBallPos()
Liefert die Position des Balles als Point-Objekt. |
protected int |
getBallXPos()
Liefert die horizontale Position des Balles. |
protected int |
getBallYPos()
Liefert die vertikale Position des Balles. |
protected int |
getFieldHeight()
Liefert die Höhe des Spielfelds. |
protected java.awt.Dimension |
getFieldSize()
Liefert die Größe (Breite und Höhe) des Spielfelds. |
protected int |
getFieldWidth()
Liefert die Breite des Spielfelds. |
protected java.awt.Point |
getMyPos()
Liefert die Position des Spielers als Point-Objekt. |
protected int |
getMyXPos()
Liefert die horizontale Position des Spielers. |
protected int |
getMyYPos()
Liefert die vertikale Position des Spielers. |
protected java.awt.Point |
getPassReceiver(int direction)
Ermittelt, welcher eigene Roboter einen ausgeführten Pass empfangen würde. |
protected int |
getPriority(int x,
int y)
Erfragt die Priorität eines Roboters auf einem bestimmten Feld. |
protected int |
getPriority(java.awt.Point pos)
Erfragt die Priorität eines Roboters auf einem bestimmten Feld. |
protected int |
getRelativeDirection(java.awt.Point from,
java.awt.Point to)
Bestimmt die Richtung, in der ein Punkt aus Sicht eines anderen Punkts liegt. |
protected java.lang.String |
getRobotClassName(java.awt.Point pos)
Ermittelt den Klassennamen eines Roboters im eigenen Team. |
protected boolean |
isLineFree(java.awt.Point from,
java.awt.Point to)
Ermittelt, ob auf einer Verbindung zwischen zwei Punkten alle Felder frei sind. |
protected boolean |
isPassPossible(int x,
int y,
int direction)
Prüft, ob ein Roboter, der auf einem bestimmten Feld steht, in eine bestimmte Richtung passen kann. |
protected boolean |
isPassPossible(java.awt.Point pos,
int direction)
Prüft, ob ein Roboter, der auf einem bestimmten Feld steht, in eine bestimmte Richtung passen kann. |
protected boolean |
isSelfPassPossible(int direction)
Prüft, ob der aktuelle Roboter in eine Richtung passen könnte. |
protected int |
lookAt(int x,
int y)
Liefert Informationen über den Inhalt eines bestimmten Spielfeldes. |
protected int |
lookAt(java.awt.Point pos)
Liefert Informationen über den Inhalt eines bestimmten Spielfeldes. |
protected int |
lookTo(int direction)
Liefert Informationen über den Inhalt eines der vier Felder um den Roboter herum. |
protected int |
lookTo(int direction,
int distance)
Liefert Informationen über ein Feld in einer bestimmten Richtung. |
protected int |
lookToRel(int xFrom,
int yFrom,
int direction)
Liefert Informationen über den Inhalt eines Feldes, das in einer bestimmten Richtung neben einem anderen Feld liegt. |
protected int |
lookToRel(int xFrom,
int yFrom,
int direction,
int distance)
Liefert Informationen über den Inhalt eines Feldes, das in einer bestimmten Richtung und in einer bestimmten Entfernung von einem anderen Feld liegt. |
protected int |
lookToRel(java.awt.Point from,
int direction)
Liefert Informationen über den Inhalt eines Feldes, das in einer bestimmten Richtung neben einem anderen Feld liegt. |
protected int |
lookToRel(java.awt.Point from,
int direction,
int distance)
Liefert Informationen über den Inhalt eines Feldes, das in einer bestimmten Richtung und in einer bestimmten Entfernung von einem anderen Feld liegt. |
abstract org.RoboBall.SoccerAction |
makeMove()
Führt eine Spielaktion aus. |
protected org.RoboBall.SoccerAction |
moveOrRun(int direction)
Ermittelt die bestmögliche Bewegung zum Erreichen des Balls. |
protected int |
nextOtherRobotAround(int direction)
Sucht in der Umgebung eines Feldes, das neben diesem Roboter liegt, nach dem Roboter mit der höchsten Priorität aus dem gegnerischen Team. |
protected int |
nextOtherRobotAround(int x,
int y)
Sucht in der Umgebung eines Feldes nach dem Roboter mit der höchsten Priorität aus dem gegnerischen Team. |
protected int |
nextOtherRobotAround(java.awt.Point pos)
Sucht in der Umgebung eines Feldes nach dem Roboter mit der höchsten Priorität aus dem gegnerischen Team. |
protected int |
nextOwnRobotAround(int direction)
Sucht in der Umgebung eines Feldes, das neben diesem Roboter liegt, nach dem Roboter mit der höchsten Priorität aus dem eigenen Team. |
protected int |
nextOwnRobotAround(int x,
int y)
Sucht in der Umgebung eines Feldes nach dem Roboter mit der höchsten Priorität aus dem eigenen Team. |
protected int |
nextOwnRobotAround(java.awt.Point pos)
Sucht in der Umgebung eines Feldes nach dem Roboter mit der höchsten Priorität aus dem eigenen Team. |
protected int |
nextRobotAround(int x,
int y)
Sucht in der Umgebung eines Feldes nach dem Roboter mit der höchsten Priorität. |
protected int |
nextRobotAround(java.awt.Point pos)
Sucht in der Umgebung eines Feldes nach dem Roboter mit der höchsten Priorität. |
protected java.awt.Point |
offsetPoint(int direction)
Errechnet einen Punkt, in einer bestimmten Richtung direkt neben diesem Roboter liegt. |
protected java.awt.Point |
offsetPoint(int direction,
int dist)
Errechnet einen Punkt, der, von diesem Roboter, in einer bestimmten Richtung und einer bestimmten Entfernung liegt. |
protected static java.awt.Point |
offsetPoint(java.awt.Point p,
int direction)
Errechnet einen Punkt, der, ausgehend von einem anderen Punkt, um ein Feld in eine bestimmte Richtung verschoben wurde. Es wird keinerlei Überprüfung durchgeführt, ob der zurückgegebene Punkt noch innerhalb des Spielfelds liegt. |
protected static java.awt.Point |
offsetPoint(java.awt.Point p,
int direction,
int dist)
Errechnet einen Punkt, der, ausgehend von einem anderen Punkt, in eine bestimmte Richtung verschoben wurde. Es wird keinerlei Überprüfung durchgeführt, ob der zurückgegebene Punkt noch innerhalb des Spielfelds liegt. |
protected java.lang.Object[] |
receiveMessages()
Holt alle Nachrichten ab, die seit dem letzten Spielzug dieses Roboters an ihn gesendet wurden. |
protected int |
selfBallAround()
Fragt ab, ob der Ball neben dem aktuellen Roboter liegt. |
protected boolean |
selfMostAway()
Prüft, ob dieser Roboter am weitesten von allen Teamrobotern vom Ball entfernt ist. |
protected boolean |
sendMessageTo(java.awt.Point pos,
java.lang.Object message)
Sendet eine Nachricht an einen befreundeten Roboter. |
protected void |
sendMessageToAll(java.lang.Object message)
Sendet eine Nachricht an alle befreundeten Roboter. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
public static final int NOTHING
public static final int UP
public static final int DOWN
public static final int LEFT
public static final int RIGHT
public static final int VERTICAL
public static final int HORIZONTAL
public static final int FREE
public static final int MY_TEAM
public static final int OTHER_TEAM
public static final int BALL
public static final int WALL
| Constructor Detail |
public Player()
| Method Detail |
protected final java.awt.Point getMyPos()
Point-Objekt.
protected final int getMyXPos()
protected final int getMyYPos()
protected final java.awt.Dimension getFieldSize()
Dimension-Objekt, das die Breite und Höhe
enthältprotected final int getFieldWidth()
protected final int getFieldHeight()
protected final java.awt.Point getBallPos()
Point-Objekt.
protected final int getBallXPos()
protected final int getBallYPos()
public abstract org.RoboBall.SoccerAction makeMove()
SoccerActionprotected final int lookAt(java.awt.Point pos)
pos - der Punkt auf dem Spielfeld, dessen Inhalt ermittelt werden
soll
FREE, falls das Feld frei istMY_TEAM, falls auf dem Feld ein Roboter des eigenen
Teams stehtOTHER_TEAM, falls auf dem Feld ein Roboter des gegnerischen
Teams stehtBALL, falls der Ball auf diesem Feld liegtWALL, falls das Feld außerhalb des Spielplans liegtlookAt(int, int),
lookTo(int, int)
protected final int lookAt(int x,
int y)
lookAt(Point); die Koordinaten des
Punktes können jedoch einzeln angegeben werden.
x - die X-Koordinate des Feldesy - die Y-Koordinate des Feldes
lookAt(Point).lookAt(Point),
lookTo(int, int)
protected final int lookTo(int direction,
int distance)
direction - die Lage des Feldes in Bezug auf den Roboter, als Richtung:
UP - obenDOWN - untenLEFT - linksRIGHT - rechtsdistance - die Entfernung des Feldes vom Roboter
lookAt(Point).lookTo(int),
lookToRel(java.awt.Point, int, int),
lookAt(java.awt.Point)protected final int lookTo(int direction)
lookToRel( getMyPos(), direction ).
direction - die Lage des Feldes in Bezug auf den Roboter, als Richtung:
UP - obenDOWN - untenLEFT - linksRIGHT - rechtslookAt.lookTo(int, int),
lookToRel(java.awt.Point, int, int),
lookAt(java.awt.Point)
protected final int lookToRel(java.awt.Point from,
int direction,
int distance)
lookAt( offsetPoint(from, direction, distance) ).
from - ein Feld, das als Ausgangspunkt dientdirection - die Richtung, in der das Zielfeld von from aus
gesehen liegtdistance - die Entfernung zwischen from und dem Zielfeld
lookAt.lookToRel(Point, int),
lookTo(int, int),
lookAt(java.awt.Point)
protected final int lookToRel(int xFrom,
int yFrom,
int direction,
int distance)
xFrom - die X-Koordinate des AusgangsfeldesyFrom - die Y-Koordinate des Ausgangsfeldesdirection - die Richtung, in der das Zielfeld von
(xFrom, yFrom) aus gesehen liegtdistance - die Entfernung zwischen (xFrom, yFrom) und
dem Zielfeld
lookAt.lookToRel(Point, int),
lookTo(int, int),
lookAt(java.awt.Point)
protected final int lookToRel(java.awt.Point from,
int direction)
lookAt( offsetPoint(from, direction) ).
from - ein Feld, das als Ausgangspunkt dientdirection - die Richtung, in der das Zielfeld von from aus
gesehen liegt
lookAt(Point).lookToRel(Point, int, int),
lookTo(int, int),
lookAt(java.awt.Point)
protected final int lookToRel(int xFrom,
int yFrom,
int direction)
xFrom - die X-Koordinate des AusgangsfeldesyFrom - die Y-Koordinate des Ausgangsfeldesdirection - die Richtung, in der das Zielfeld von
(xFrom, yFrom) aus gesehen liegt
lookAt.lookToRel(Point, int),
lookTo(int, int),
lookAt(java.awt.Point)protected final int selfBallAround()
ballAround(getMyPos())
ballAround.ballAround(java.awt.Point)protected final int ballAround(java.awt.Point pos)
pos - die Position des Feldes
UP, DOWN, LEFT oder
RIGHT für die Richtung des Balles relativ zum FeldBALL, falls der Ball selbst auf dem Feld liegtNOTHING falls der Ball nicht neben dem
Feld liegt.
protected final int ballAround(int x,
int y)
x - die X-Koordinate des Feldesy - die Y-Koordinate des Feldes
ballAround(Point)ballAround(Point),
selfBallAround()protected final org.RoboBall.SoccerAction moveOrRun(int direction)
direction - die Richtung der Bewegung
SoccerAction, die eine entsprechende
Bewegung enthält: MOVE, falls nötig, ansonsten
RUN.SoccerAction,
SoccerAction#move,
SoccerAction#runprotected final java.awt.Point[] findRobots(int team)
team - eine Konstante, die das Team bezeichnet; entweder MY_TEAM
oder OTHER_TEAM.
Point-Objekten, das die Positionen aller
Roboter im Team enthält.protected final java.lang.String getRobotClassName(java.awt.Point pos)
pos - die Position des eigenen Roboters
null, falls
auf dem Feld kein befreundeter Roboter stehtfindRobotsOfClass(java.lang.String)protected final java.awt.Point[] findRobotsOfClass(java.lang.String className)
className - Der Name der Roboterklasse.
getRobotClassName(java.awt.Point)protected final java.awt.Point[] findRobotsOfClasses(java.lang.String[] classNames)
classNames - ein Array aus Strings, das die Namen der Roboterklassen
enthält
getRobotClassName(java.awt.Point)
protected final boolean isLineFree(java.awt.Point from,
java.awt.Point to)
from - der Startpunkt der Verbindungto - der Endpunkt der Verbindung
true, falls die Verbindung frei ist. false,
falls ein Hindernis dazwischen ist oder die Punkte nicht auf einer Linie
liegen.protected final java.awt.Point getPassReceiver(int direction)
direction - die Richtung, in die gepasst werden soll
protected final boolean isSelfPassPossible(int direction)
direction - die Richtung, in die gepasst werden soll
true, falls Pass zu einem Teamroboter möglich,
ansonsten falseisPassPossible(java.awt.Point, int)
protected final boolean isPassPossible(java.awt.Point pos,
int direction)
pos - die Position des passenden Robotersdirection - Die Richtung, in die gepasst werden soll. Die Richtung
wird dabei nie gedreht, d.h. ein UP-Pass für einen
gegnerischen Roboter wäre ein Rückpass.
true, falls Pass zu einem Teamroboter moeglich,
ansonsten falseisPassPossible(int, int, int),
isSelfPassPossible(int)
protected final boolean isPassPossible(int x,
int y,
int direction)
x - die X-Koordinate des passenden Robotersy - die Y-Koordinate des passenden Robotersdirection - Die Richtung, in die gepasst werden soll. Die Richtung
wird dabei nie gedreht, d.h. ein UP-Pass für einen
gegnerischen Roboter wäre ein Rückpass.
true, falls Pass zu einem Teamroboter moeglich,
ansonsten falseisPassPossible(Point, int),
isSelfPassPossible(int)protected final boolean selfMostAway()
true, falls Roboter am weitesten entfernt ist,
ansonsten falseprotected final int getPriority(java.awt.Point pos)
pos - die Position des Feldes
Integer.MAX_VALUE zurückgegeben.getPriority(int, int),
nextRobotAround(java.awt.Point),
nextOwnRobotAround(java.awt.Point),
nextOtherRobotAround(java.awt.Point)
protected final int getPriority(int x,
int y)
x - die X-Koordinate des Feldesy - die Y-Koordinate des Feldes
Integer.MAX_VALUE zurückgegeben.getPriority(Point),
nextRobotAround(java.awt.Point),
nextOwnRobotAround(java.awt.Point),
nextOtherRobotAround(java.awt.Point)protected final int nextRobotAround(java.awt.Point pos)
pos - die Position des Feldes
x, y)NOTHING, falls es keine benachbarten Roboter gibt.nextRobotAround(int, int),
getPriority(java.awt.Point),
nextOwnRobotAround(java.awt.Point),
nextOtherRobotAround(java.awt.Point)
protected final int nextRobotAround(int x,
int y)
x - die X-Koordinate des Feldesy - die Y-Koordinate des Feldes
x, y)NOTHING, falls es keine benachbarten Roboter gibt.nextRobotAround(Point),
getPriority(java.awt.Point),
nextOwnRobotAround(java.awt.Point),
nextOtherRobotAround(java.awt.Point)protected final int nextOwnRobotAround(java.awt.Point pos)
pos - die Position des Feldes
x, y)NOTHING, falls es keine benachbarten eigenen Roboter
gibt.nextOwnRobotAround(int, int),
nextOwnRobotAround(int),
getPriority(java.awt.Point),
nextRobotAround(java.awt.Point),
nextOtherRobotAround(java.awt.Point)
protected final int nextOwnRobotAround(int x,
int y)
x - die X-Koordinate des Feldesy - die Y-Koordinate des Feldes
x, y)NOTHING, falls es keine benachbarten eigenen Roboter
gibt.nextOwnRobotAround(Point),
nextOwnRobotAround(int),
getPriority(java.awt.Point),
nextRobotAround(java.awt.Point),
nextOtherRobotAround(java.awt.Point)protected final int nextOwnRobotAround(int direction)
direction - die Richtung, in der das Feld liegt
NOTHING, falls es keine benachbarten eigenen
Roboter gibt.nextOwnRobotAround(Point),
nextOwnRobotAround(int, int),
getPriority(java.awt.Point),
nextRobotAround(java.awt.Point),
nextOtherRobotAround(java.awt.Point)protected final int nextOtherRobotAround(java.awt.Point pos)
pos - die Position des Feldes
x, y)NOTHING, falls es keine benachbarten gegnerischen
Roboter gibt.nextOtherRobotAround(int, int),
nextOtherRobotAround(int),
getPriority(java.awt.Point),
nextRobotAround(java.awt.Point),
nextOtherRobotAround(java.awt.Point)
protected final int nextOtherRobotAround(int x,
int y)
x - die X-Koordinate des Feldesy - die Y-Koordinate des Feldes
x, y)NOTHING, falls es keine benachbarten gegnerischen
Roboter gibt.nextOtherRobotAround(Point),
nextOtherRobotAround(int),
getPriority(java.awt.Point),
nextRobotAround(java.awt.Point),
nextOtherRobotAround(java.awt.Point)protected final int nextOtherRobotAround(int direction)
direction - die Richtung, in der das Feld liegt
NOTHING, falls es keine benachbarten gegnerischen
Roboter gibt.nextOtherRobotAround(Point),
nextOtherRobotAround(int, int),
getPriority(java.awt.Point),
nextRobotAround(java.awt.Point),
nextOwnRobotAround(java.awt.Point)protected final org.RoboBall.SoccerAction canScoreGoal()
SoccerAction, die den Zug beschreibt, mit dem
ein Tor erzielt werden kann, oder null, falls dies
nicht möglich ist.canScoreGoal(Point),
canScoreGoal(int, int),
SoccerActionprotected final org.RoboBall.SoccerAction canScoreGoal(java.awt.Point pos)
pos - die Position des Roboters
SoccerAction, die den Zug beschreibt, mit dem
ein Tor erzielt werden kann, oder null, falls dies
nicht möglich ist.canScoreGoal(),
canScoreGoal(int, int),
SoccerAction
protected final org.RoboBall.SoccerAction canScoreGoal(int x,
int y)
x - die X-Koordinate des Robotersy - die Y-Koordinate des Roboters
SoccerAction, die den Zug beschreibt, mit dem
ein Tor erzielt werden kann, oder null, falls dies
nicht möglich ist.canScoreGoal(),
canScoreGoal(Point),
SoccerAction
protected static java.awt.Point offsetPoint(java.awt.Point p,
int direction,
int dist)
p - der Ausgangspunktdirection - Die Richtung. Dies kann UP, DOWN,
LEFT, RIGHT oder NOTHING sein.dist - die Anzahl der Felder, in die der Punkt verschoben werden soll
(kann auch negativ sein)
p und dist Felder entfernt.
protected static java.awt.Point offsetPoint(java.awt.Point p,
int direction)
p - der Ausgangspunktdirection - Die Richtung. Dies kann UP, DOWN,
LEFT, RIGHT oder NOTHING sein.
p.
protected java.awt.Point offsetPoint(int direction,
int dist)
direction - Die Richtung. Dies kann UP, DOWN,
LEFT, RIGHT oder NOTHING
sein.dist - die Entfernung (kann auch negativ sein)
protected java.awt.Point offsetPoint(int direction)
direction - Die Richtung. Dies kann UP, DOWN,
LEFT, RIGHT oder NOTHING
sein.
protected final int getRelativeDirection(java.awt.Point from,
java.awt.Point to)
from - der Ausgangspunktto - der Punkt, dessen relative Richtung ermittelt werden soll.
|) der Werte
UP, DOWN, LEFT,
RIGHT. Um die Richtungsanteile zu ermitteln, können die
Konstanten HORIZONTAL und VERTICAL als Masken
benutzt werden.to von from aus links oben, so wird
LEFT | UP zurückgegeben.from und to überein, ist der Rückgabewert
NOTHING.
protected final boolean sendMessageTo(java.awt.Point pos,
java.lang.Object message)
sendMessageTo dann erneut für den selben Empfänger aufgerufen,
wird die alte Nachricht überschrieben.
pos - die Position des befreundeten Robotersmessage - die Nachricht (kann auch null sein)
true, falls die Nachricht gesendet wurde; false,
falls an der Stelle pos kein eigener Roboter steht.sendMessageToAll(java.lang.Object),
receiveMessages()protected final void sendMessageToAll(java.lang.Object message)
message - die Nachricht (kann auch null sein)sendMessageTo(java.awt.Point, java.lang.Object),
receiveMessages()protected final java.lang.Object[] receiveMessages()
sendMessageTo(java.awt.Point, java.lang.Object),
sendMessageToAll(java.lang.Object)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||