Diese Aufgaben sind gedacht zur Bearbeitung während der Präsenzübung am Dienstag. Eine Abgabe der Lösungen ist nicht vorgesehen, aber viermal im Semester muss die eigene Bearbeitung erklärt werden (und zufriedenstellend Verständnis demonstriert werden), damit das Modul abgeschlossen werden kann. Ist diese Voraussetzung erfüllt, so kann ein konkretes Thema für das Abschlussprojekt (Hausarbeit) festgelegt werden.
Aufgabe 1¶
Sie haben in Aufgabe 1 auf den letzten Blatt Implementierungspläne zur Wirtschaftssimulation im Skript gemacht. Setzen Sie nun eine Idee um, die wenigstens 2 Unterstützer*innen gewinnen konnte.
Das Ziel ist, einfach vertrauter damit zu werden, wie sich einfache Dinge in Python explizit in Syntax übersetzen, also ein bisschen Übung im Implementieren.
Aufgabe 2¶
Sie haben in Aufgabe 2 auf dem letzten Blatt das Python-Projekt ’Wesen’ aus dem Jahre 2003/2013 von GitHub heruntergeladen:
https://
Inzwischen haben Kommilitonen eine lauffähige pyproject.toml
geschrieben.
Entwickeln Sie jetzt einen eigenen “Wesen source” und lassen Sie diese gegen die anderen antreten oder beheben Sie Problemstellen / ergänzen Sie Features im Code und schreiben einen Pull Request dazu.
Aufgabe 3¶
Arbeiten Sie weiter daran, wenn Sie noch nicht fertig geworden sind:
Sie haben auf den letzten Übungsblättern ein CYOA Text-Adventure entwickelt mit geeigneten Datenstrukturen, modularem Code und probabilistischen Elementen (sowie ein Inventar z.B.). Wenn Sie es noch nicht getan haben, ergänzen Sie zu Ihrem Code Type Hints, die Sie mit mypy prüfen sowie Assertions, um Ihre Annahmen über Variablen auszudrücken.
Ihre CYOA Anwendung soll Spielstände laden/speichern können und einen Editiermodus haben, der die gleiche Szenen-Darstellungskomponente verwendet wie der Spielmodus.
Verwenden Sie nun außerdem Dataclasses für die internen Datenstrukturen
und setzen Sie gezielt Logging ein anstelle von print-Statements..
Beschreiben Sie Ihre Metadaten in einer pyproject.toml.
Sie können diese Aufgabe auch gemeinsam bearbeiten (etwa über ein geteiltes Git Repository; wir könnten auch ein Klassen-Repo aufmachen, um daran einmal best practices zu demonstrieren).