|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectreversi.TextGameBoard
public class TextGameBoard
Implementation eines Reversi-Spielbretts inklusive nützlicher Hilfsfunktionen.
Arena
Field Summary |
---|
Fields inherited from interface reversi.GameBoard |
---|
EMPTY, GREEN, RED |
Constructor Summary | |
---|---|
TextGameBoard()
Erstellt eine neue Instanz von TextGameBoard, initialisiert mit der bei Reversi üblichen Startsituation aus 4 Steinen. |
|
TextGameBoard(GameBoard gb)
Erstellt eine neue Instanz von TextGameBoard, die eine genaue Kopie der übergebenen Spielsituation gb repräsentiert. |
Method Summary | |
---|---|
boolean |
checkMove(int player,
Coordinates c)
Diese Methode überprüft ob der Zug c einen gültigen Zug
für den Spieler player darstellt. |
int |
countStones(int player)
Zählt die Anzahl der Steine für einen gegebenen Spieler. |
int |
getPosition(Coordinates c)
Ermöglicht es, ein Feld der in dieser Instanz gespeicherten Spielsituation abzufragen. |
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 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. |
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. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public TextGameBoard()
public TextGameBoard(GameBoard gb)
gb
repräsentiert.
gb
- eine gegebene SpielsituationMethod Detail |
---|
public int getSize()
GameBoard
getSize
in interface GameBoard
public void updateBoard(GameBoard gb)
public int getPosition(Coordinates c) throws OutOfBoundsException
getPosition
in interface GameBoard
c
- die Koordinaten des Spielfelds, welches abgefragt wird.
OutOfBoundsException
- wenn sich die in c angegebenen Koordinaten
ausserhalb des Spielfelds befinden
public boolean isMoveAvailable(int player)
true
zurück, wenn ein gültiger Zug für den
übergebenen Spieler existiert.
player
- Spezifiziert den Spieler (entweder GameBoard.RED oder
GameBoard.GREEN), für den überprüft werden soll.
True
falls ein gültiger Zug existiert,
false
sonst.public boolean checkMove(int player, Coordinates c)
c
einen gültigen Zug
für den Spieler player
darstellt.
player
- der Spieler, entweder GameBoard.RED
or
GameBoard.GREEN
.c
- die Koordinaten, die überprüft werden sollen.
true
, wenn Zug gültigpublic void makeMove(int player, Coordinates c)
TextGameBoard
muss einem Aufruf von makeMove
immer ein Aufruf von checkMove
mit den gleichen
Koordinaten vorausgehen. Nachfolgend ein Beispiel:
public Coordinates nextMove( GameBoard gb ) {
// ...
TextGameBoard tgb=new TextGameBoard(gb);
Coordinates c=new Coordinates(3,4);
if(tgb.checkMove(GameBoard.GREEN,c)) {
tgb.makeMove(GameBoard.GREEN,c);
}
TextGameBoard
: In makeMove
können
Berechnungsschritte eingespart werden, die in checkMove
schon gemacht worden sind, allerdings nur, wenn sich die Aufrufe auf das
gleiche Spielfeld beziehen (wie z.B. oben auf das Spielfeld
c
).
player
- der Spieler für den ein Stein gesetzt werden soll, entweder
GameBoard.RED oder GameBoard.GREENc
- Koordinaten, wo der Stein gesetzt werden soll
UnsupportedMethodInvocationException
- falls vor dem Aufruf von makeMove
kein
entsprechender Aufruf checkMove
erfolgt istpublic boolean isFull()
public int countStones(int player)
player
- der Spieler
public String toString()
toString
in class Object
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |