GeoCities
Im Rahmen der Vorlesung 'Software-Entwicklung' soll ein Programm 'Schiffe versenken' möglichst objektorientiert mit C++ entwickelt werden. Die Dokumentation soll vorzugsweise im HTML-Format erfolgen. Diese Seite ist ein Versuch, diese Aufgabe zu lösen.

Schnittstellen zwischen verschiedenen Programmteilen sind ein wichtiger Teil in der Softwareentwicklung. Einerseits sollten sie möglichst einfach sein, andererseits müssen sie alle Zustände zweifelsfrei definieren. Die Schnittstelle Modell - GUI (Klasse Control) besitzt folgende Methoden:

Gültigkeit der Befehle:

Zu Beginn kann nur startGame aufgerufen werden. Der Befehl wird deaktiviert, sobald ein Spiel gestartet wurde. Das Ende des laufenden Spiels oder cancelGame heben die Blockade auf.

Nach startGame muss setShip aufgerufen werden, bis die Flotte vollständig gesetzt ist. Während dieser Zeit ist auch der Befehl checkShip aktiv. Im Fall von Modus 3 wird setShip nur einmal aufgerufen und start wird ignoriert, falls der Wert nicht 0 beträgt.

Anschliessened muss so oft shoot aufgerufen werden, bis das Spiel beendet ist.

cancelGame ist aktiv, sobald ein Spiel gestartet wurde, und kann jederzeit erfolgen.

status und statistics können jederzeit aufgerufen werden, sobald die Flotten gesetzt sind.

Rückgabewerte:

Methoden, welche Werte ans GUI zurückliefern, geben mit ihrem Rückgabewert nur an, wie viele Werte bei GetData abgeholt werden müssen. Auf diese Weise kann eine variable Anzahl Parameter übergeben werden, ohne eine aufwändige Umwandlung in einen String zu tätigen, und ohne einen Zeiger übergeben zu müssen. Befehle, welche nicht aktiv sind, geben bei einem Aufruf vom GUI den Wert –2 zurück, bei einer Fehlübergabe –1, wenn der Befehl ok ist, ohne dass Daten abgeholt werden müssen 0,  und eine positive Zahl n  bedeuted, dass der Befehl ok ist und n Werte bei getData abgeholt werden müssen (bei einfachen Funktionen gilt 0 = false und 1 = true).

copyright August 01, 2003 by FHBB NDSI 2003 / c.t.