Fortgeschrittene objektorientierte Programmierung
LVA 185.211, VU, 3 ECTS, 2014 S
CAT-Calls
Schreiben Sie ein Programm zur Verwaltung der Ergebnisse von Mäuserennspielen. Jedes Spiel verwendet eine bestimmte Version des Rennprogramms und erstreckt sich über mehrere Runden mit teilweise unterschiedlichen Levels. Die Anzahl der Siege der einzelnen Spieler(innen) in jedem Level werden festgehalten und können später abgefragt und nach verschiedenen Kriterien ausgewertet werden. Auch die unterschiedlichen Versionen des Rennprogramms und deren Levels sollen zusammen mit deren Entwickler(inne)n festgehalten und abgefagt werden können. Beispielsweise soll es möglich sein, herauszufinden, ob die Spielergebnisse dadurch beeinflusst werden, dass Spieler(innen) auch als Entwickler(innen) der entsprechenden Versionen oder Levels mitgewirkt haben, oder ob Spielergebnisse mit der Anzahl der Teilnahmen an Spielen (mit konkreten Versionen bzw. Levels oder allgemein) oder an der Entwicklung korrelieren.
Zur Erreichung des Ziels ist es günstig, zwischen verschiedenen Arten von Personen zu unterscheiden: Spieler(innen), Entwickler(innen) von Versionen und Entwickler(innen) von Levels. Natürlich kann ein und dieselbe Person zu mehreren dieser Arten gehören, und in verschiedenen Programmteilen sind durch Verwendung von Typen nur bestimmte Arten von Personen zugelassen. Achten Sie darauf, dass Sie durch mehrere Typen von Personen und mehrere Typen verwalteter Daten (Spielergebnisse, Versionen, Levels, etc.) parallele Typhierarchien einführen, sodass sich Einsatzmöglichkeiten für CAT-Calls ergeben.
Bei der Verwendung von Zusicherungen sind der Fantasie kaum Grenzen gesetzt. Beispielsweise könnte man die Anzahl der Runden, Levels und Spieler(innen) pro Spiel sowohl nach unten als auch nach oben begrenzen, eventuell auch abhängig von bestimmten Versionen und Levels. Man könnte auch die Anzahl der Teilnahmen von Personen an Spielen bzw. in der Entwicklung in einem bestimmten Zeitraum nach unten und oben beschränken, vielleicht abhängig von der Art der Personen. Überlegen Sie sich Zusicherungen, welche die Möglichkeiten und vor allem Grenzen der Verwendung von Zusicherungen demonstrieren.
Nehmen Sie im Nachhinein Änderungen an allen Teilen des Programms vor, hauptsächlich solche, die sich auf Zusicherungen auswirken. Führen Sie bewusst Situationen herbei, in denen Zusicherungen verletzt und CAT-Calls nötig werden, die Ausnahmen werfen. Versuchen Sie das System in diesen Situationen zu überlisten, sodass das Programm ohne Ausnahmen läuft, obwohl die eigentlichen Ursachen der Probleme noch immer existieren.
Achten Sie generell auf ein sinnvolles Sichtbarmachen von Features
in anderen Programmteilen sowie auf Eiffel-typische Kommentare (= sprechende Kommentare an den richtigen Stellen).