reversi
Interface GameBoard


public interface GameBoard

Das Interface GameBoard stellt für Implementierungen von ReversiPlayer die Schnittstelle zum Spielbrett dar. Zudem definiert es die (int) Konstanten GameBoard.RED, GameBoard.GREEN und GameBoard.EMPTY.


Field Summary
static int EMPTY
          Diese Konstante symbolisiert eine leere Position auf dem Spielfeld.
static int GREEN
          Diese Konstante symbolisiert einen grünen Stein auf dem Spielfeld.
static int RED
          Diese Konstante symbolisiert einen roten Stein auf dem Spielfeld.
 
Method Summary
 boolean checkMove(int player, Coordinates coord)
          Diese Methode überprüft ob der Spieler player an die Position coord setzen dürfte.
 GameBoard clone()
          Legt eine Kopie des Spielbretts an.
 int countStones(int player)
          Zählt die Anzahl der Steine für einen gegebenen Spieler.
 int getOccupation(Coordinates coord)
          Gibt die Belegung einer Position auf dem Spielfeld zurück
 int getSize()
          Gibt die Ausdehnung des Spielfeldes zurück.
 boolean isFull()
          Überprüft, ob das Spielfeld voll ist.
 boolean isMoveAvailable(int player)
          Gibt true zurück, wenn ein gültiger Zug für den übergebenen Spieler existiert.
 void makeMove(int player, Coordinates coord)
          Diese Methode setzt einen Stein für den angegebenen Spieler auf dem angegebenen Feld, und dreht Steine des Gegners gemäss den Regeln um.
 boolean validCoordinates(Coordinates coord)
          Checks if the Coordinates are valid
 

Field Detail

EMPTY

static final int EMPTY
Diese Konstante symbolisiert eine leere Position auf dem Spielfeld.

See Also:
Constant Field Values

RED

static final int RED
Diese Konstante symbolisiert einen roten Stein auf dem Spielfeld.

See Also:
Constant Field Values

GREEN

static final int GREEN
Diese Konstante symbolisiert einen grünen Stein auf dem Spielfeld.

See Also:
Constant Field Values
Method Detail

clone

GameBoard clone()
Legt eine Kopie des Spielbretts an. Das ist nützlich, um hypothetische Züge evaluieren zu können.

Returns:
eine Kopie des Spielbretts.

getSize

int getSize()
Gibt die Ausdehnung des Spielfeldes zurück. Das Spielfeld ist 2-Dimensional und hat in beide Richtungen die selbe Ausdehnung.

Returns:
die Ausdehung des quadratischen Spielfeldes

validCoordinates

boolean validCoordinates(Coordinates coord)
Checks if the Coordinates are valid

Parameters:
coord - the coordinates in question
Returns:
true iff row and column of the coordinates are between 1 and getSize().

getOccupation

int getOccupation(Coordinates coord)
                  throws OutOfBoundsException
Gibt die Belegung einer Position auf dem Spielfeld zurück

Parameters:
coord - Ein Coordinates-Objekt, welches die Position auf dem Spielfeld spezifiziert.
Returns:
Eine der Konstanten RED, GREEN und EMPTY.
Throws:
OutOfBoundsException - Wird ausgelöst, wenn coord eine ungültige Position beschreibt. Gültige Werte sind: 1 <= row, col <= getSize().

isFull

boolean isFull()
Überprüft, ob das Spielfeld voll ist.

Returns:
true wenn ja, false sonst.

isMoveAvailable

boolean isMoveAvailable(int player)
Gibt true zurück, wenn ein gültiger Zug für den übergebenen Spieler existiert.

Parameters:
player - Spezifiziert den Spieler (entweder RED oder GREEN), für den überprüft werden soll.
Returns:
true falls ein gültiger Zug existiert, false sonst.

checkMove

boolean checkMove(int player,
                  Coordinates coord)
Diese Methode überprüft ob der Spieler player an die Position coord setzen dürfte.

Parameters:
player - der Spieler, entweder GameBoard.RED or GameBoard.GREEN.
coord - die Koordinaten, die überprüft werden sollen.
Returns:
true, wenn Zug gültig, false> sonst.

makeMove

void makeMove(int player,
              Coordinates coord)
Diese Methode setzt einen Stein für den angegebenen Spieler auf dem angegebenen Feld, und dreht Steine des Gegners gemäss den Regeln um. Vor dem Aufruf von makeMove muss ein Aufruf von checkMove mit dem selben Parametern erfolgen.

Parameters:
player - der Spieler für den ein Stein gesetzt werden soll, entweder GameBoard.RED oder GameBoard.GREEN
coord - Koordinaten, wo der Stein gesetzt werden soll
Throws:
java.lang.IllegalStateException - falls vor dem Aufruf von makeMove kein Aufruf von checkMove mit dem selben Spieler und der selben Position erfolgt ist.

countStones

int countStones(int player)
Zählt die Anzahl der Steine für einen gegebenen Spieler.

Parameters:
player - die Spielerfarbe
Returns:
die Anzahl der Steine in der gegebenen Spielerfarbe auf dem Spielfeld.