humanPlayer
Class HumanPlayer

java.lang.Object
  extended by humanPlayer.HumanPlayer
All Implemented Interfaces:
ReversiPlayer

public class HumanPlayer
extends Object
implements ReversiPlayer

HumanPlayer implementiert auf einfache Art das Interface für einen Reversi-Spieler (ReversiPlayer). Anstatt einen Zug zu berechnen, fordert HumanPlayer den Benutzer auf, einen Zug über die Konsole einzugeben.

Author:
chfrank
See Also:
ReversiPlayer

Constructor Summary
HumanPlayer()
          Konstruktor, der bei der Gründung eines HumanPlayer eine Meldung auf den Bildschirm ausgibt.
 
Method Summary
 void initialize(int color, long timeout)
          Speichert die Farbe und den Timeout-Wert in Instanzvariablen ab.
 Coordinates nextMove(GameBoard gb)
          Macht einen Zug für den HumanPlayer, indem der Benutzer zur Eingabe eines Zuges aufgefordert wird.
static Coordinates readMoveFromKeyboard()
          Liest einen Zug vom Benutzer ein.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HumanPlayer

public HumanPlayer()
Konstruktor, der bei der Gründung eines HumanPlayer eine Meldung auf den Bildschirm ausgibt.

Method Detail

initialize

public void initialize(int color,
                       long timeout)
Speichert die Farbe und den Timeout-Wert in Instanzvariablen ab. Diese Methode wird vor Beginn des Spiels von Arena aufgerufen.

Specified by:
initialize in interface ReversiPlayer
Parameters:
color - Die diesem Spieler von der Arena zugewiesene Farbe der Spielsteine, entweder GameBoard.RED für rote Spielsteine oder GameBoard.GREEN für grüne.
timeout - Die maximale Zeit, die eine Implementierung des Interfaces für das Bearbeiten der Methode nextMove() benötigen darf, angegeben in Millisekunden.
See Also:
ReversiPlayer

nextMove

public Coordinates nextMove(GameBoard gb)
Macht einen Zug für den HumanPlayer, indem der Benutzer zur Eingabe eines Zuges aufgefordert wird. Diese Methode wird von Arena abwechselnd aufgerufen.

Specified by:
nextMove in interface ReversiPlayer
Parameters:
gb - Beschreibt die augenblickliche Spielsituation.
Returns:
Der Zug des HumanPlayers.
See Also:
ReversiPlayer

readMoveFromKeyboard

public static Coordinates readMoveFromKeyboard()
Liest einen Zug vom Benutzer ein. Gültige Eingaben sind entweder ein Koordinatenpaar bestehend aus Zeile und Spalte (z.B. '6d') oder ein 'p', um zu passen falls kein Zug möglich ist. Methode wiederholt die Eingabeaufforderung so lange bis eine gültige Eingabe gemacht wurde.

Returns:
Gibt die eingelesenen Koordinaten zurück, bzw. null, wenn der Benutzer "Passen" ausgewählt hat.