Package reversi
Interface GameBoard
- All Known Implementing Classes:
BitBoard
,TextGameBoard
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
-
Method Summary
Modifier and Type Method Description boolean
checkMove(int player, Coordinates coord)
Diese Methode überprüft ob der Spielerplayer
an die Positioncoord
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ückint
getSize()
Gibt die Ausdehnung des Spielfeldes zurück.boolean
isFull()
Überprüft, ob das Spielfeld voll ist.boolean
isMoveAvailable(int player)
Gibttrue
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.default int
mobility(int player)
Diese Methode gibt die Anzahl Positionen zurück, an welchen der Spielerplayer
setzen dürfte.boolean
validCoordinates(Coordinates coord)
Checks if theCoordinates
are valid
-
Field Details
-
EMPTY
static final int EMPTYDiese Konstante symbolisiert eine leere Position auf dem Spielfeld.- See Also:
- Constant Field Values
-
RED
static final int REDDiese Konstante symbolisiert einen roten Stein auf dem Spielfeld.- See Also:
- Constant Field Values
-
GREEN
static final int GREENDiese Konstante symbolisiert einen grünen Stein auf dem Spielfeld.- See Also:
- Constant Field Values
-
-
Method Details
-
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
Checks if theCoordinates
are valid- Parameters:
coord
- the coordinates in question- Returns:
- true iff row and column of the coordinates are between 1 and
getSize()
.
-
getOccupation
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
undEMPTY
. - Throws:
OutOfBoundsException
- Wird ausgelöst, wenncoord
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)Gibttrue
zurück, wenn ein gültiger Zug für den übergebenen Spieler existiert. -
checkMove
Diese Methode überprüft ob der Spielerplayer
an die Positioncoord
setzen dürfte. -
mobility
default int mobility(int player)Diese Methode gibt die Anzahl Positionen zurück, an welchen der Spielerplayer
setzen dürfte. -
makeMove
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 voncheckMove
mit dem selben Parametern erfolgen.- Parameters:
player
- der Spieler für den ein Stein gesetzt werden soll, entweder GameBoard.RED oder GameBoard.GREENcoord
- Koordinaten, wo der Stein gesetzt werden soll- Throws:
java.lang.IllegalStateException
- falls vor dem Aufruf vonmakeMove
kein Aufruf voncheckMove
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.
-