Die Schnittstelle des Models von Gomoku

Die Schnittstelle des Gomoku-Models liegt in IModel.java vor. Sie braucht die Hilfstypen in den Dateien BesetztException.java und Spieler.java.

package model;

/** IModel.java
 * Schnittstelle Model für Gomoku mit MVC
 * @author Prof. Dr. Andreas Solymosi, Beuth-Hochschule für Technik, (c) 2012, solymosi@tfh-berlin.de
 * @version 2/1/12 
 */
public interface IModel {
  /**
   * Neuanfang
   * wird aufgerufen im Model-Konstruktor sowie vom Control
   */
  void start();
  /**
   * Der Spieler, der als nächster den Stein setzen soll
   * Wird vom View aufgerufen, um den auf der Informationstafel anzuzeigen, welcher Spieler als nächster setzen soll.
   * @return O oder X
   */
  public Spieler nächster(); // const
  /**
   * Ein Stein wurde auf den Spielfeld gesetzt
   * Wird vom Control aufgerufen, wenn ein Stein gesetzt wurde.
   * @param zeile
   * @param spalte
   * @throws BesetztException wenn das Feld schon besetzt ist 
   */
    void steinSetzen(final int zeile, final int spalte) throws BesetztException;
    /**
     * Wie ist das Feld besetzt?
     * Wird vom View aufgerufen, um die korrekten Steine auf die einzelnen Feldern darzustellen.
     * @param zeile
     * @param spalte
     * @return Leer oder O oder X
     * @throws NoSuchFieldError wenn (bei begrentzem Brett) das Feld nicht existiert
     */
    Spieler besetztVon(final int zeile, final int spalte); // const
    /**
     * Liegt das Feld an der Siegerlinie (fünf gleiche Steine nebeneinander)?
     * Wird vom View aufgerufen, um am Spielende die Siegersteine gesondert darzustellen.
     * @param zeile
     * @param spalte
     * @return true wenn die Zelle an der Siegerlinie liegt
     * @return false wenn nein oder es noch keinen Sieger gibt (oder bei begrentzem Brett die Zelle außerhalb des Bretts liegt)
     */
    boolean siegerlinie(final int zeile, final int spalte); // const
    /**
     * Wird vom Control aufgerufen, um das Ende des Spiels zu erkennen.
     * Wird vom View aufgerufen, um den Sieger auf der Informationstafel anzuzeigen
     * @return Der Sieger des Spiels; Spieler.LEER wenn noch keins 
     */
    Spieler sieger(); // const
}
package model;
/* BesetztException.java
 * Ausnahmeklasse für Gomoku
 * @author Prof. Dr. Andreas Solymosi, Beuth-Hochschule für Technik, (c) 2012, solymosi@tfh-berlin.de
 * @version 2/1/12 
 */
public class BesetztException extends Exception {
}
package model;
/** Spieler.java
 * Aufzählungstyp für Gomoku
 * @author Prof. Dr. Andreas Solymosi, Beuth-Hochschule für Technik, (c) 2012, solymosi@tfh-berlin.de
 * @version 2/1/12 
 */
public enum Spieler { X, O, LEER;
  @Override
  public String toString() { // const
        return this == X ? "x" : this == O ? "o" : " ";   
  }
}

Implementierung der Schnittstelle


Version: 5. Februar 2012

© Prof. Solymosi, 20102 Beuth-Hochschule für Technik Berlin, Fachbereich VI (Informatik und Medien)

solymosibht-berlin.de