de.torfu.kabayellow.common
Interface IGameObserver

All Known Implementing Classes:
AbstractPlayer, AutoTurnFinisher, BufferedGame, CountdownThread, GameObserverGroup

public interface IGameObserver

Interface für einen Spielbeobachter.


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 receiveChatMessage(int playerID, java.lang.String message)
          Wird aufgerufen, wenn ein beliebiger Spieler eine Chat-Nachricht verschickt hat.
 

Method Detail

newPlayer

public void newPlayer(java.lang.String name,
                      int age)
Wird aufgerufen, wenn sich ein weiterer Spieler anmeldet.


gameStarted

public void gameStarted()
Wird einmalig aufgerufen, wenn alle Spieler sich angemeldet haben.


gameStatusChanged

public 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. Der AbstractPlayer kann diese Methode überschreiben, um z.B. eine GUI-Darstellung des Spielstatus neu zu zeichnen.

Wenn der AbstractPlayer Informationen darüber haben will, was genau sich geändert hat, muss er statt dieser Methode z.B. nextPlayer() oder actionPerformed() überschreiben.


nextPlayer

public void nextPlayer()
Wird aufgerufen, nachdem ein Spieler seinen Zug beendet hat. Dabei ist es egal, ob es dieser Spieler, oder ein anderer Spieler war, der seinen Zug beendet hat. Die Methode wird auch aufgerufen, wenn der gleiche Spieler danach noch einmal dran ist, z.B. wenn er eine reguläre Runde beendet hat und danach selbst den König versetzen darf.


nextRound

public void nextRound()
Wird aufgerufen, nachdem eine Runde zu Ende ist. Dies ist der Fall, immer nachdem


nextPhase

public void nextPhase()
Wird aufgerufen, nachdem eine Phase zu Ende ist. Jede Phase beginnt mit dem Versetzen des Königs, und endet mit dem Aufaddieren der Punkte. Die "nullte" Phase beginnt mit dem Spielanfang und endet, nachdem alle Spieler ihren Startritter gesetzt haben.


actionPerformed

public void actionPerformed(Action action)
Wird aufgerufen, wenn ein beliebiger Spieler eine Action ausgeführt hat. Das entsprechende Action-Objekt wird als Parameter übergeben. Auch von diesem AbstractPlayer selbst ausgeführte Aktionen werden ihm auf diese Weise noch einmal übermittelt.


receiveChatMessage

public void receiveChatMessage(int playerID,
                               java.lang.String message)
Wird aufgerufen, wenn ein beliebiger Spieler eine Chat-Nachricht verschickt hat. Auch die eigenen Nachrichten werden einem auf diese Weise noch einmal übermittelt.

Parameters:
playerID - die ID des abschickenden Spielers, 0-3
message - der Text der Nachricht

gameOver

public void gameOver(Player winner)
Wird aufgerufen, wenn das Spiel vorbei ist.

Parameters:
winner - Der Player, welcher das Spiel gewonnen hat.