Package reversi
Class TextGameBoard
java.lang.Object
reversi.TextGameBoard
- All Implemented Interfaces:
GameBoard
public class TextGameBoard extends java.lang.Object implements GameBoard
Implementation eines Reversi-Spielbretts inklusive nützlicher
Hilfsfunktionen.
- See Also:
Arena
-
Field Summary
-
Constructor Summary
Constructors Constructor Description TextGameBoard()
Erstellt eine neue Instanz von TextGameBoard, initialisiert mit der bei Reversi üblichen Startsituation aus 4 Steinen.TextGameBoard(boolean othelloStartPosition)
Erstellt eine neue Instanz von TextGameBoard, initialsiert ein TextGameBoard mit der bei Reversi oder Othello üblichen Startsituation.TextGameBoard(GameBoard gb)
Erstellt eine neue Instanz von TextGameBoard, die eine genaue Kopie der übergebenen Spielsituationgb
repräsentiert. -
Method Summary
Modifier and Type Method Description boolean
checkMove(int player, Coordinates c)
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 c)
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 c)
Diese Methode setzt einen Stein für den angegebenen Spieler auf dem angegebenen Feld, und dreht Steine des Gegners gemäss den Regeln um.java.lang.String
toString()
Erstellt einen mehrzeiligen String, der eine Textdarstellung der in dieser Instanz gespeicherten Spielsituation enthält.void
updateBoard(GameBoard gb)
Kopiert die als Parameter übergebene Spielsituation in die aktuelle Instanz.boolean
validCoordinates(Coordinates c)
Checks if theCoordinates
are valid
-
Constructor Details
-
TextGameBoard
public TextGameBoard()Erstellt eine neue Instanz von TextGameBoard, initialisiert mit der bei Reversi üblichen Startsituation aus 4 Steinen. -
TextGameBoard
Erstellt eine neue Instanz von TextGameBoard, die eine genaue Kopie der übergebenen Spielsituationgb
repräsentiert.- Parameters:
gb
- eine gegebene Spielsituation
-
TextGameBoard
public TextGameBoard(boolean othelloStartPosition)Erstellt eine neue Instanz von TextGameBoard, initialsiert ein TextGameBoard mit der bei Reversi oder Othello üblichen Startsituation.- Parameters:
othelloStartPosition
- True: othello start position (überkreuz) False: reversi start position (parallel)
-
-
Method Details
-
clone
Description copied from interface:GameBoard
Legt eine Kopie des Spielbretts an. Das ist nützlich, um hypothetische Züge evaluieren zu können. -
getSize
public int getSize()Description copied from interface:GameBoard
Gibt die Ausdehnung des Spielfeldes zurück. Das Spielfeld ist 2-Dimensional und hat in beide Richtungen die selbe Ausdehnung. -
validCoordinates
Description copied from interface:GameBoard
Checks if theCoordinates
are valid- Specified by:
validCoordinates
in interfaceGameBoard
- Parameters:
c
- the coordinates in question- Returns:
- true iff row and column of the coordinates are between 1 and
GameBoard.getSize()
.
-
updateBoard
Kopiert die als Parameter übergebene Spielsituation in die aktuelle Instanz. -
getOccupation
Description copied from interface:GameBoard
Gibt die Belegung einer Position auf dem Spielfeld zurück- Specified by:
getOccupation
in interfaceGameBoard
- Parameters:
c
- Ein Coordinates-Objekt, welches die Position auf dem Spielfeld spezifiziert.- Returns:
- Eine der Konstanten
GameBoard.RED
,GameBoard.GREEN
undGameBoard.EMPTY
. - Throws:
OutOfBoundsException
- Wird ausgelöst, wenncoord
eine ungültige Position beschreibt. Gültige Werte sind: 1 <= row, col <=GameBoard.getSize()
.
-
isMoveAvailable
public boolean isMoveAvailable(int player)Description copied from interface:GameBoard
Gibttrue
zurück, wenn ein gültiger Zug für den übergebenen Spieler existiert.- Specified by:
isMoveAvailable
in interfaceGameBoard
- Parameters:
player
- Spezifiziert den Spieler (entwederGameBoard.RED
oderGameBoard.GREEN
), für den überprüft werden soll.- Returns:
true
falls ein gültiger Zug existiert,false
sonst.
-
checkMove
Description copied from interface:GameBoard
Diese Methode überprüft ob der Spielerplayer
an die Positioncoord
setzen dürfte.- Specified by:
checkMove
in interfaceGameBoard
- Parameters:
player
- der Spieler, entwederGameBoard.RED
orGameBoard.GREEN
.c
- die Koordinaten, die überprüft werden sollen.- Returns:
true
, wenn Zug gültig,false
sonst.
-
makeMove
Description copied from interface:GameBoard
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. -
isFull
public boolean isFull()Description copied from interface:GameBoard
Überprüft, ob das Spielfeld voll ist. -
countStones
public int countStones(int player)Description copied from interface:GameBoard
Zählt die Anzahl der Steine für einen gegebenen Spieler.- Specified by:
countStones
in interfaceGameBoard
- Parameters:
player
- die Spielerfarbe- Returns:
- die Anzahl der Steine in der gegebenen Spielerfarbe auf dem Spielfeld.
-
toString
public java.lang.String toString()Erstellt einen mehrzeiligen String, der eine Textdarstellung der in dieser Instanz gespeicherten Spielsituation enthält.- Overrides:
toString
in classjava.lang.Object
-