examplePlayers
Class AbstractPlayer

java.lang.Object
  extended by examplePlayers.AbstractPlayer
All Implemented Interfaces:
ReversiPlayer
Direct Known Subclasses:
HumanPlayer, RandomPlayer

public abstract class AbstractPlayer
extends Object
implements ReversiPlayer

Lösungsvorschlag zur Übungsserie Nr. 7, Aufgabe 2)
AbstractPlayer stellt allen Playern gemeinsam zu benutzende Methoden zur Verfügung. Dazu implementiert die Klasse das Interface ReversiPlayer, ohne jedoch die Methoden zu implementieren - diese werden stattdessen als abstract deklariert.

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

Constructor Summary
AbstractPlayer()
           
 
Method Summary
 boolean checkMove(Coordinates zug, GameBoard gb)
          Testet, ob dieser Player in der Spielsituation gb an der Position zug einen Stein setzen darf.
abstract  void initialize(int color, long timeout)
          Speichert die Farbe und den Timeout-Wert in Instanzvariablen ab.
 boolean moveExists(GameBoard gb)
          Testet, ob es für diesen Player auf dem Feld gb einen legalen Zug gibt.
abstract  Coordinates nextMove(GameBoard gb)
          Soll den nächsten Zug zurückliefern.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractPlayer

public AbstractPlayer()
Method Detail

initialize

public abstract 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. Muss von den Unterklassen imlementiert werden.

Specified by:
initialize in interface ReversiPlayer
Parameters:
color - Farbe dieses Spielers.
timeout - Zeitlimit für einen Spielzug.

nextMove

public abstract Coordinates nextMove(GameBoard gb)
Soll den nächsten Zug zurückliefern. Muss von Unterklassen implementiert werden.

Specified by:
nextMove in interface ReversiPlayer
Parameters:
gb - Aktuelle Spielsituation
Returns:
Koordinaten des nächsten Spielzuges.

checkMove

public boolean checkMove(Coordinates zug,
                         GameBoard gb)
Testet, ob dieser Player in der Spielsituation gb an der Position zug einen Stein setzen darf. Auch ein Passen (zug ist null) wird überprüft.

Parameters:
gb - Aktuelle Spielsituation
zug - Zu überprüfender Zug
Returns:
true, wenn der Zug erlaubt ist, sonst false.

moveExists

public boolean moveExists(GameBoard gb)
Testet, ob es für diesen Player auf dem Feld gb einen legalen Zug gibt.

Parameters:
gb - Aktuelle Spielsituation.
Returns:
true, wenn es einen legalen Zug für diesen Spieler gibt, sonst false.