examplePlayers
Class HumanPlayer

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

public class HumanPlayer
extends AbstractPlayer

Lösungsvorschlag zur Übungsserie Nr. 7, Aufgabe 2)
In diesem Lösungsvorschlag implementiert HumanPlayer nicht das Interface ReversiPlayer, sondern erweitert die abstrakte Klasse AbstractPlayer. Anstatt einen Zug zu berechnen, fordert HumanPlayer den Benutzer auf, einen Zug über die Konsole einzugeben.

Version:
1
Author:
Team x (Apfel Sine, Zi Trone)
See Also:
AbstractPlayer

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 examplePlayers.AbstractPlayer
checkMove, moveExists
 
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
Specified by:
initialize in class AbstractPlayer
Parameters:
color - Farbe dieses Spielers.
timeout - Zeitlimit für einen Spielzug.
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
Specified by:
nextMove in class AbstractPlayer
Parameters:
gb - Die aktuelle 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.