Package reversi

Interface GameBoard

All Known Implementing Classes:
BitBoard, TextGameBoard

public interface GameBoard
Das Interface GameBoard stellt für Implementierungen von ReversiPlayer die Schnittstelle zum Spielbrett dar. Zudem definiert es die (int) Konstanten GameBoard.RED, GameBoard.GREEN und GameBoard.EMPTY.
  • Field Summary

    Fields 
    Modifier and Type Field Description
    static int EMPTY
    Diese Konstante symbolisiert eine leere Position auf dem Spielfeld.
    static int GREEN
    Diese Konstante symbolisiert einen grünen Stein auf dem Spielfeld.
    static int RED
    Diese Konstante symbolisiert einen roten Stein auf dem Spielfeld.
  • Method Summary

    Modifier and Type Method Description
    boolean checkMove​(int player, Coordinates coord)
    Diese Methode überprüft ob der Spieler player an die Position coord setzen dürfte.
    GameBoard clone()
    Legt eine Kopie des Spielbretts an.
    int countStones​(int player)
    Zählt die Anzahl der Steine für einen gegebenen Spieler.
    int getOccupation​(Coordinates coord)
    Gibt die Belegung einer Position auf dem Spielfeld zurück
    int getSize()
    Gibt die Ausdehnung des Spielfeldes zurück.
    boolean isFull()
    Überprüft, ob das Spielfeld voll ist.
    boolean isMoveAvailable​(int player)
    Gibt true zurück, wenn ein gültiger Zug für den übergebenen Spieler existiert.
    void makeMove​(int player, Coordinates coord)
    Diese Methode setzt einen Stein für den angegebenen Spieler auf dem angegebenen Feld, und dreht Steine des Gegners gemäss den Regeln um.
    default int mobility​(int player)
    Diese Methode gibt die Anzahl Positionen zurück, an welchen der Spieler player setzen dürfte.
    boolean validCoordinates​(Coordinates coord)
    Checks if the Coordinates are valid
  • Field Details

    • EMPTY

      static final int EMPTY
      Diese Konstante symbolisiert eine leere Position auf dem Spielfeld.
      See Also:
      Constant Field Values
    • RED

      static final int RED
      Diese Konstante symbolisiert einen roten Stein auf dem Spielfeld.
      See Also:
      Constant Field Values
    • GREEN

      static final int GREEN
      Diese Konstante symbolisiert einen grünen Stein auf dem Spielfeld.
      See Also:
      Constant Field Values
  • Method Details

    • clone

      GameBoard clone()
      Legt eine Kopie des Spielbretts an. Das ist nützlich, um hypothetische Züge evaluieren zu können.
      Returns:
      eine Kopie des Spielbretts.
    • getSize

      int getSize()
      Gibt die Ausdehnung des Spielfeldes zurück. Das Spielfeld ist 2-Dimensional und hat in beide Richtungen die selbe Ausdehnung.
      Returns:
      die Ausdehung des quadratischen Spielfeldes
    • validCoordinates

      boolean validCoordinates​(Coordinates coord)
      Checks if the Coordinates are valid
      Parameters:
      coord - the coordinates in question
      Returns:
      true iff row and column of the coordinates are between 1 and getSize().
    • getOccupation

      int getOccupation​(Coordinates coord) throws OutOfBoundsException
      Gibt die Belegung einer Position auf dem Spielfeld zurück
      Parameters:
      coord - Ein Coordinates-Objekt, welches die Position auf dem Spielfeld spezifiziert.
      Returns:
      Eine der Konstanten RED, GREEN und EMPTY.
      Throws:
      OutOfBoundsException - Wird ausgelöst, wenn coord eine ungültige Position beschreibt. Gültige Werte sind: 1 <= row, col <= getSize().
    • isFull

      boolean isFull()
      Überprüft, ob das Spielfeld voll ist.
      Returns:
      true wenn ja, false sonst.
    • isMoveAvailable

      boolean isMoveAvailable​(int player)
      Gibt true zurück, wenn ein gültiger Zug für den übergebenen Spieler existiert.
      Parameters:
      player - Spezifiziert den Spieler (entweder RED oder GREEN), für den überprüft werden soll.
      Returns:
      true falls ein gültiger Zug existiert, false sonst.
    • checkMove

      boolean checkMove​(int player, Coordinates coord)
      Diese Methode überprüft ob der Spieler player an die Position coord setzen dürfte.
      Parameters:
      player - der Spieler, entweder RED or GREEN.
      coord - die Koordinaten, die überprüft werden sollen.
      Returns:
      true, wenn Zug gültig, false sonst.
    • mobility

      default int mobility​(int player)
      Diese Methode gibt die Anzahl Positionen zurück, an welchen der Spieler player setzen dürfte.
      Parameters:
      player - der Spieler, entweder RED or GREEN.
      Returns:
      Die Anzahl Positionen an welcher player setzen dürfte.
    • makeMove

      void makeMove​(int player, Coordinates coord)
      Diese Methode setzt einen Stein für den angegebenen Spieler auf dem angegebenen Feld, und dreht Steine des Gegners gemäss den Regeln um. Vor dem Aufruf von makeMove muss ein Aufruf von checkMove mit dem selben Parametern erfolgen.
      Parameters:
      player - der Spieler für den ein Stein gesetzt werden soll, entweder GameBoard.RED oder GameBoard.GREEN
      coord - Koordinaten, wo der Stein gesetzt werden soll
      Throws:
      java.lang.IllegalStateException - falls vor dem Aufruf von makeMove kein Aufruf von checkMove mit dem selben Spieler und der selben Position erfolgt ist.
    • countStones

      int countStones​(int player)
      Zählt die Anzahl der Steine für einen gegebenen Spieler.
      Parameters:
      player - die Spielerfarbe
      Returns:
      die Anzahl der Steine in der gegebenen Spielerfarbe auf dem Spielfeld.