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¶
ca. 10 Min.: Werfen Sie einen Blick auf die ’Wirtschaftssimulation’ im Skript und überlegen Sie sich ein neues Feature, welches Sie hinzufügen könnten.
ca. 10 Min.: Schreiben Sie einen Plan auf, wie Sie dieses Feature implementieren würden.
ca. 5 Min.: Tauschen Sie sich dann mit mindestens einer weiteren Person aus, die einen anderen Plan hat. Sie sollen versuchen, sich gegenseitig zu überzeugen, was eine bessere Idee ist. Suchen Sie ggf. weitere Personen mit anderen Plänen.
ca. 5 Min.: Wir sammeln die Pläne, die wenigstens eine andere Person überzeugen konnten. Wir werden damit noch weiterarbeiten.
Aufgabe 2¶
Laden Sie das Python-Projekt ’Wesen’ aus dem Jahre 2003/2013 von GitHub herunter:
https://
und bringen Sie das Programm ans Laufen (die grafische Benutzeroberfläche).
Die Schwierigkeit: es gibt noch nichtmal eine requirements.txt.
Wir werden damit noch weiterarbeiten.
Aufgabe 3 (Optional)¶
Schreiben Sie eine pyproject.toml für ’Wesen’ sodass sich mit uv das
Paket leicht installieren lässt (und probieren Sie aus, dass das
wirklich klappt).
Bonusaufgabe: wenn das gut geklappt hat, stellen Sie auf GitHub einen Pull Request.
Aufgabe 4¶
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).
Wir werden damit noch weiterarbeiten.