class RasteredPlayground

Modelliert ein gerastertes Spielfeld zum Finden von guten passiven Positionen

Public Classes

struct PositionTyp
Spielfeldkoord. (reelle Koord.)

Public Methods

void acquireKnowledgeAbout(const int about)
Lernt (erfasst Daten ueber) die Spielaufstellung der Gegner und des Balles
Vector goodPassivePosition()
Berechnet eine gute passive Position
RasteredPlayground()
Der Konstruktor
~RasteredPlayground()
Der Destruktor

Public

struct PositionTyp
Spielfeldkoord. (reelle Koord.)

Private Fields

Array < ColumnT > colours
Das 2D-Array von Farben. Repraesentiert das Spielfeld gerastert.
int columns
Zahl der Spalten im Raster
typedef Array < Colouring > ColumnT
Eine Spalte von Colouring Objekten
double halfFieldLength
Haeufiger benutzter Wert: Die halbe Spielfeldlaenge
double halfFieldWidth
Haeufiger benutzter Wert: Die halbe Spielfeldbreite
int rows
Zahl der Zeilen im Raster

Private Methods

Vector bestPosition(Array <PositionTyp>& position )
Berechnung der besten Position nach den Kriterien Abstand von home-Position, Abstand von aktueller Position, Faerbung der Schwerpunkte der Kante, Ballverlauf
bool computePositions(Array <PositionTyp> & position, Array <Vector> & playerFocus )
Auswahl von nicht zu kurzen und nicht zu langen Kanten zwischen den Schwerpunkten, zu denen kein anderer Spieler naeher steht und Berechnung von Positionen auf diesen Kanten
int foundFocuses(Array <Vector> & playerFocus)
Berechnung der Schwerpunkte der Gegnerpositionen
int getBallAppearance( Vector firstVector, Vector secondVector )
Berechnung der Ballhaeufigkeit (= Summe der Ballfaerbungen in den Rastern) entlang einer Kante
void incColourOfBallAt(Vector& pos)
Faerbt das Ball-Feld auf Position pos (die vom Weltmodell).
void incColourOfPlayerAt(Vector& pos)
Faerbt das Spieler-Feld auf Position pos (die vom Weltmodell).
Vector positionOnEdge( Vector firstVector, Vector secondVector )
Berechnung einer Position auf der Kante zwischen den Punkten "firstVector" und "secondVector"
Vector rasteredFromRealCoordinates(const Vector& realVector)
Umrechnung von kartesischen Spielfeldkoordinaten in Rasterkoordinaten
Vector realFromRasteredCoordinates(const Vector& rasteredVector)
Umrechnung von Rasterkoordinaten in kartesische Spielfeldkoordinaten
void storePosOfTeammates( Array <Vector>& teammatePos )
Speichert die Positionen der eigenen Mitspieler
bool teammateCloserTo( const Vector &thePositionOnEdge, Array <Vector> &teammatePos )
Prueft ob ein anderer Mitspieler naeher an der moeglichen passiven Position ist

Documentation

Modelliert ein gerastertes Spielfeld zum Finden von guten passiven Positionen. Jeder Spieler will als Passivaktion eine gute passive Position finden und sich zu dieser begeben. Dazu lernt er in regelmäßigen Abständen die Schwerpunkte der gegnerischen Spieler (wenn der Ball weit entfernt ist) und den Ballverlauf (wenn der Ball nah ist).

Die Utility ist äquivalent zur Entfernung des Balles, d. h. je weiter der Ball entfernt ist, desto größer ist die Nützlichkeit, eine gute passive Position zu erreichen.

CVS Informationen

 **************************************************
 *
 * Aktueller Stand
 *
 *   $RCSfile: RasteredPlayground.h,v $
 *   $Revision: 1.3 $
 *   $Date: 1998/08/14 13:21:08 $
 *   $Author: myritz $ 
 *
 **************************************************
 
RasteredPlayground()
Der Konstruktor. Initialisiert das gerasterte Spielfeld.

~RasteredPlayground()
Der Destruktor

struct PositionTyp
Spielfeldkoord. (reelle Koord.)

Vector goodPassivePosition()
Berechnet eine gute passive Position
Returns:
s Position

void acquireKnowledgeAbout(const int about)
Lernt (erfasst Daten ueber) die Spielaufstellung der Gegner und des Balles

typedef Array < Colouring > ColumnT
Eine Spalte von Colouring Objekten

Array < ColumnT > colours
Das 2D-Array von Farben. Repraesentiert das Spielfeld gerastert.

void incColourOfPlayerAt(Vector& pos)
Faerbt das Spieler-Feld auf Position pos (die vom Weltmodell).

void incColourOfBallAt(Vector& pos)
Faerbt das Ball-Feld auf Position pos (die vom Weltmodell).

int rows
Zahl der Zeilen im Raster

int columns
Zahl der Spalten im Raster

double halfFieldLength
Haeufiger benutzter Wert: Die halbe Spielfeldlaenge

double halfFieldWidth
Haeufiger benutzter Wert: Die halbe Spielfeldbreite

Vector realFromRasteredCoordinates(const Vector& rasteredVector)
Umrechnung von Rasterkoordinaten in kartesische Spielfeldkoordinaten

Vector rasteredFromRealCoordinates(const Vector& realVector)
Umrechnung von kartesischen Spielfeldkoordinaten in Rasterkoordinaten

Vector positionOnEdge( Vector firstVector, Vector secondVector )
Berechnung einer Position auf der Kante zwischen den Punkten "firstVector" und "secondVector"

bool teammateCloserTo( const Vector &thePositionOnEdge, Array <Vector> &teammatePos )
Prueft ob ein anderer Mitspieler naeher an der moeglichen passiven Position ist

int foundFocuses(Array <Vector> & playerFocus)
Berechnung der Schwerpunkte der Gegnerpositionen
Returns:
Zahl der Schwerpunkte

bool computePositions(Array <PositionTyp> & position, Array <Vector> & playerFocus )
Auswahl von nicht zu kurzen und nicht zu langen Kanten zwischen den Schwerpunkten, zu denen kein anderer Spieler naeher steht und Berechnung von Positionen auf diesen Kanten
Returns:
YES = Positionen gefunden, NO = Positionen nicht gefunden

Vector bestPosition(Array <PositionTyp>& position )
Berechnung der besten Position nach den Kriterien Abstand von home-Position, Abstand von aktueller Position, Faerbung der Schwerpunkte der Kante, Ballverlauf

void storePosOfTeammates( Array <Vector>& teammatePos )
Speichert die Positionen der eigenen Mitspieler. Die Positionen werden aus dem Weltmodell geholt.
Parameters:
teammatePos - Das Array, in das die Positionen der Mitspieler eingetragen werden.

int getBallAppearance( Vector firstVector, Vector secondVector )
Berechnung der Ballhaeufigkeit (= Summe der Ballfaerbungen in den Rastern) entlang einer Kante


This class has no child classes.

alphabetic index hierarchy of classes


Hauptseite

Einleitung | Architektur | Dynamische Zusammenhänge | Referenzhandbuch | FAQ | Anhang A | Anhang B

generated by doc++