Das Model beinhaltet die gesamte Logik. Das Model verwaltet das TicTacToe Spiel, weiß wer gerade an der Reihe ist, wie das Spielfeld aussieht, wer gewinnt und was ein korrekter Spielzug ist.
Die TicTacToe-Methode initialisiert ein neues Objekt vom Typ TicTacToe
. Sie
sollte den Anfangszustand des Objektes genau definieren. (leeres Spielfeld,
den aktuellen Spieler etc)
Die getSpielfeld-Methode gibt das aktuelle Spielfeld zurück.
Die getAktuellerSpieler-Methode gibt den aktuellen Spieler zurück.
Die getGewinner-Methode gibt den Gewinner des Spiels zurück. Sollte es noch keinen Gewinner geben, sollte die Methode einen geeigneten Rückgabewert haben.
Die macheSpielzug-Methode nimmt die Koordinaten eines Spielzugs entgegen und führt den Spielzug aus, danach sollte der andere Spieler am Zug sein. Sollte der Spielzug falsch sein, soll die Methode false zurückgeben und nichts machen.
Der Controller ist für den eigentlichen Spielablauf zuständig, er ruft Methoden des Models und des Views auf und dient praktisch als ein Bindeglied zwischen den beiden.
Die TicTacToeController-Methode initialisiert ein neues Objekt vom Typ
TicTacToeController
.
Die spieleSpiel-Methode spielt eine einzelne Runde TicTacToe. (Begrüßung,
solange spielen bis es einen Gewinner gibt, Gewinner ausgeben)
Der View ist dafür verantwortlich, dass das Spiel ordentlich ausgegeben wird. Der View sollte keine »Logik« enthalten, dass bedeutet: man würde bspw. nicht in der getSpielzug-Methode kontrollieren ob der Spielzug korrekt ist, stattdessen würde man solche Frage dem Model überlassen. So kann sich der View vollständig um die Benutzeroberfläche kümmern.
Die TicTacToeView-Methode initialisiert ein neus Objekt vom Typ TicTacToeView
.
Die zeigeSpielfeld-Methode zeigt das Spielfeld an bspw. so:
| X |
-----------
O | X |
-----------
O | |
Begrüßt die Spieler und gibt gegebenenfalls die Regeln des Spiels aus.
Zeigt eine Fehlermeldung an, die den Spieler darauf hinweist, dass irgendetwas nicht so ganz funktioniert hat.
Gibt den Gewinner des Spiels aus.
Fordert den aktuellen Spieler dazu auf einen Spielzug einzugeben.