In dieser Übung designen wir ein kleines Stück Software - ein Text-Adventure. In dieser Übung besprechen wir, welche Schritte dafür sinnvoll sind und wie man sich so einer Aufgabe nähern kann.
Ein Text-Adventure ist ein Spiel, die auf die Konsolen-Zeit (vor den grafischen Benutzungsoberflächen) zurückgeht. In den 1980er und 90er Jahren war es ein sehr beliebtes Genre, und einige klassische Spiele aus dieser Zeit können immer noch mit browserbasierten Emulatoren gespielt werden.
Die Idee ist einfach: Die einzige Schnittstelle zum Spiel ist mein Konsolen-Window. Man findet sich an einem unbekannten Ort wieder, muss ihn erkunden, verschiedene Bedrohungen überleben und eine Aufgabe lösen. Normalerweise bewege ich mich in einem Raster: Ich kann nur nach Norden, Osten, Westen und Süden gehen. Während meiner Suche muss ich Gegenstände aufsammeln und sie benutzen, um Türen zu öffnen oder Bedrohungen zu bekämpfen.
Nähere Informationen finden Sie in dem individuellen Repo für das Text-Adventure (im README). Aber wie nähert man sich denn jetzt am besten so einer Aufgabe? In dieser Übung machen wir die ersten Schritte gemeinsam.
Nehmen Sie sich eine Stunde Zeit und gehen Sie in kleinen Gruppen in “virtuelle Besprechungsräume”. Überlegen Sie gemeinsam, was gute Ideen für ein Text-Adventure sein könnten. Sie können eine Idee gemeinsam entwickeln, oder jede/r von Ihnen verfolgt eine eigene Idee (oder Variante).
Wichtig ist (jetzt und bei allen folgenden Schritten), dass Sie in jedem Fall selbst und allein an Ihrem Code arbeiten. Wenn Sie nur zusehen, lernen Sie nur wenig Neues. Aber tauschen Sie sich jederzeit gern mit Anderen aus und sprechen Sie über Ideen und Probleme!
Sie können Ihre Ideen auf einem Miro-Board sammeln.
Denken Sie zurück an unsere Warmup-Übung zum Thema “Eine Pizza Funghi zubereiten”. Dort haben wir in zwei Teilteams Abläufe beim Pizzamachen und Eigenschaften (Bestandteile, nötige Gerätschaften etc.) gesammelt und dann zusammengeführt.
Machen Sie das dieses Mal auch wieder so - nur eben für Ihre Idee beim Text-Adventure. Sie können wieder das Miro-Board dafür nutzen.
Nehmen Sie sich ca. 45 min Zeit dafür, dann vergleich wir.
Versuchen Sie mal, ein Ablaufdiagramm zu erstellen (keine formale Notation, einfach Kästchen und Pfeile). Welche Schritte muss das Programm durchlaufen? Z.B.
Welche Entitäten (Geschäftsobjekte) gibt es bei Ihnen? Spieler? Waffen? Monster? Machen Sie ein Domain Model, bei dem Sie die Entitäten als Kästen und Pfeilen darstellen. Pfeil zwischen A und B heißt: A kennt/benutzt B.
Nehmen Sie sich ca. 45 min Zeit für Schritt 2a und 2b, dann kommen wir zusammen und vergleichen.
Die Kästchen aus Ihrem Domain Model sind gute Kandidaten für Klassen. Entscheidungen und Aktivitäten aus Ihrem Ablaufdiagramm können Methoden sein. Legen Sie schon einmal leere C#-Klassen in Ihrem Repo an, und schreiben Sie leere Methoden, wo Ihnen diese schon einleuchten.
Versuchen Sie, für eine Ihrer Klassen Testfälle zu identifizieren - wenn nötig erst einmal nur als Kommentare.
Nehmen Sie sich für Schritt 3 und 4 ca. 30 min Zeit.