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