Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Übung 4

Heinrich-Heine-Universität Düsseldorf

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

Aufgabe 2

Laden Sie das Python-Projekt ’Wesen’ aus dem Jahre 2003/2013 von GitHub herunter:

https://github.com/konradvoelkel/wesen

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.