|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object | +--de.torfu.kabayellow.common.AbstractPlayer
Abstrakte Superklasse für einen lokalen Spieler (GUI oder KI). GUI und KI müssen diese Klasse erweitern.
Wenn das Spiel beginnt, wird ein AbstractPlayer erzeugt. Der AbstractPlayer hat über die getGame()-Methode jederzeit Zugriff auf den aktuellen Spielstand.
Es müssen mindestens die vier abstrakten Methoden yourTurnNormal(), yourTurnMoveKing(), yourTurnSetFirstKnight() und timeout() überschrieben werden. Diese Methoden werden von der Control aufgerufen, wenn der AbstractPlayer am Zug ist, bzw. sein Zug wegen Timeout beendet wurde.
Die anderen Methoden können überschrieben werden, um auf bestimmte Spielereignisse zu reagieren. Sie werden von der Control aufgerufen, wenn bestimmte Ereignisse eingetreten sind.
Aufrufreihenfolge:
Normale Aktionen: Zuerst wird die Aktion ausgeführt, dann werden aufgerufen:
Beim Kartenkauf: Zuerst wird die neue Karte in die getCards()-Liste eingefügt, dann: Beim Zugende (ActionEndTurn, ActionMoveKing,
letztes ActionSetFirstKnight) werden zuerst Runde, Phase,
currentPlayer usw. im Game aktualisiert, dann werden aufgerufen:
actionPerformed(Action)gameStatusChanged()nextPlayer()nextRound()nextPhase()gameOver(Player)yourTurnNormal(), yourTurnMoveKing(),
yourTurnSetFirstKnight()
| Constructor Summary | |
AbstractPlayer()
|
|
| Method Summary | |
void |
actionPerformed(Action action)
Wird aufgerufen, wenn ein beliebiger Spieler eine Action ausgeführt hat. |
void |
gameOver(Player winner)
Wird aufgerufen, wenn das Spiel vorbei ist. |
void |
gameStarted()
Wird einmalig aufgerufen, wenn alle Spieler sich angemeldet haben. |
void |
gameStatusChanged()
Wird nach jeder Änderung des Spielstatus aufgerufen, z.B. wenn der nächste Spieler dran ist, oder wenn ein beliebiger Spieler eine Aktion ausgeführt hat. |
void |
newPlayer(java.lang.String name,
int age)
Wird aufgerufen, wenn sich ein weiterer Spieler anmeldet. |
void |
nextPhase()
Wird aufgerufen, nachdem eine Phase zu Ende ist. |
void |
nextPlayer()
Wird aufgerufen, nachdem ein Spieler seinen Zug beendet hat. |
void |
nextRound()
Wird aufgerufen, nachdem eine Runde zu Ende ist. |
void |
receiveCard(ActionCard card)
Wird aufgerufen, nachdem der AbstractPlayer eine ActionBuyCard ausgeführt hat. |
void |
receiveChatMessage(int playerID,
java.lang.String message)
Wird aufgerufen, wenn ein beliebiger Spieler eine Chat-Nachricht verschickt hat. |
void |
startGame(Game game)
Wird von Communicator aufgerufen, wenn alle Spieler sich angemeldet haben und das Spiel losgehen kann. |
abstract void |
timeout()
Wird aufgerufen, wenn der AbstractPlayer innerhalb der vorgeschriebenen Bedenkzeit seinen Zug nicht beendet hat. |
abstract void |
yourTurnMoveKing()
Wird aufgerufen, um dem AbstractPlayer mitzuteilen, dass er den König versetzen soll. |
abstract void |
yourTurnNormal()
Wird aufgerufen, um dem AbstractPlayer mitzuteilen, dass er mit einem normalen Zug an der Reihe ist. |
abstract void |
yourTurnSetFirstKnight()
Wird aufgerufen, um dem AbstractPlayer mitzuteilen, dass er einen Ritter einsetzen soll. |
| Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public AbstractPlayer()
| Method Detail |
public abstract void yourTurnNormal()
IControllingPlayer
yourTurnNormal in interface IControllingPlayerpublic abstract void yourTurnMoveKing()
IControllingPlayer
yourTurnMoveKing in interface IControllingPlayerpublic abstract void yourTurnSetFirstKnight()
IControllingPlayer
yourTurnSetFirstKnight in interface IControllingPlayerpublic abstract void timeout()
IControllingPlayer
timeout in interface IControllingPlayerpublic void receiveCard(ActionCard card)
IControllingPlayer
receiveCard in interface IControllingPlayercard - die gezogene Karte
public void newPlayer(java.lang.String name,
int age)
IGameObserver
newPlayer in interface IGameObserverpublic void gameStarted()
IGameObserver
gameStarted in interface IGameObserverpublic void gameStatusChanged()
IGameObserverWenn der AbstractPlayer Informationen darüber haben will, was genau sich geändert hat, muss er statt dieser Methode z.B. nextPlayer() oder actionPerformed() überschreiben.
gameStatusChanged in interface IGameObserverpublic void nextPlayer()
IGameObserver
nextPlayer in interface IGameObserverpublic void nextRound()
IGameObserver
nextRound in interface IGameObserverpublic void nextPhase()
IGameObserver
nextPhase in interface IGameObserverpublic void actionPerformed(Action action)
IGameObserver
actionPerformed in interface IGameObserver
public void receiveChatMessage(int playerID,
java.lang.String message)
IGameObserver
receiveChatMessage in interface IGameObserverplayerID - die ID des abschickenden Spielers, 0-3message - der Text der Nachrichtpublic void gameOver(Player winner)
IGameObserver
gameOver in interface IGameObserverwinner - Der Player, welcher das Spiel gewonnen hat.public void startGame(Game game)
IGameJoinObserver
startGame in interface IGameJoinObserver
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||