|
|||||||||
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 IControllingPlayer
public abstract void yourTurnMoveKing()
IControllingPlayer
yourTurnMoveKing
in interface IControllingPlayer
public abstract void yourTurnSetFirstKnight()
IControllingPlayer
yourTurnSetFirstKnight
in interface IControllingPlayer
public abstract void timeout()
IControllingPlayer
timeout
in interface IControllingPlayer
public void receiveCard(ActionCard card)
IControllingPlayer
receiveCard
in interface IControllingPlayer
card
- die gezogene Kartepublic void newPlayer(java.lang.String name, int age)
IGameObserver
newPlayer
in interface IGameObserver
public void gameStarted()
IGameObserver
gameStarted
in interface IGameObserver
public void gameStatusChanged()
IGameObserver
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.
gameStatusChanged
in interface IGameObserver
public void nextPlayer()
IGameObserver
nextPlayer
in interface IGameObserver
public void nextRound()
IGameObserver
nextRound
in interface IGameObserver
public void nextPhase()
IGameObserver
nextPhase
in interface IGameObserver
public void actionPerformed(Action action)
IGameObserver
actionPerformed
in interface IGameObserver
public void receiveChatMessage(int playerID, java.lang.String message)
IGameObserver
receiveChatMessage
in interface IGameObserver
playerID
- die ID des abschickenden Spielers, 0-3message
- der Text der Nachrichtpublic void gameOver(Player winner)
IGameObserver
gameOver
in interface IGameObserver
winner
- 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 |