Finale Besprechung des Snake Spiels und Beginn mit „Adventure“ (systematisches Programmieren)

Zu Beginn der Stunde stellten uns Tim und Nils W. ihr Snake Spiel mit Erweiterung vor. Bei beiden gab es die Basisversion mit den angeforderten Minimum und eine zweite Version mit verschiedenen Erweiterungen. Tims Erweiterung war ein Multiplayer-Modus, in dem zwei Spieler gleichzeitig gegeneinander antreten konnten:

Bei Nils‘ Version dahingegen gab es statt einem Multiplayer gleich zwei Erweiterungen: Einerseits ein Portal, durch welches man sich von der einen Seite der Map auf die andere Seite teleportieren konnte. Dazu kam noch die Erweiterung eines „God Apple“, der einen für 50 act Schritte unverwundbar machen konnte, also dass man durch Wände gehen konnte und auch in sich selbst hineinlaufen konnte, ohne zu verlieren:

Als nächstes durfte Dome eine vorgefertigte des Spiels „Adventure“ spielen. Dieses Spiel basiert auf dem (wahrscheinlich) 1974 entstanden Spiel „Wanderer“. Hierbei muss man durch eine Konsoleneingabe sich auf einer bestimmten Karte herumbewegen, bis man schlussendlich am Parkplatz angekommen ist. Nachdem man einen Befehl in die Konsoleneingabe eingegeben hatte, kam direkt eine Rückmeldung mit der aktuellen Position und den verschiedenen Möglichkeiten der Richtungen, in die man gehen konnte. Die Karte entsprach diesem Entwurf:

Quelle: https://www.inf-schule.de/content/2-programmierung/3-oopjava/3-beziehungen/4-adventure/1-beschreibung/parkplan.svg

Die dabei genutzte Konsolenausgaben sahen nach erfolgreichem Spielen ungefähr so aus:

Du bist beim Baden eingedöst, langsam wird es dunkel.
Bevor nachts zwielichtige Gestalten kommen,
solltest Du schnell zu Deinem Auto...

Du bist hier: Badesee. Es gibt Wege nach: links
> links
Du bist hier: Grillplatz. Es gibt Wege nach: oben rechts
> oben
Du bist hier: Kiosk. Es gibt Wege nach: oben rechts unten links
> oben
Du bist hier: Streichelzoo. Es gibt Wege nach: unten links
> oben
Du kannst nicht nach oben gehen.
Du bist hier: Streichelzoo. Es gibt Wege nach: unten links
> links
Du bist hier: Eingang. Es gibt Wege nach: oben rechts links
> oben

Du bist nun hier: Parkplatz
Glückwunsch, Du hast es geschafft :-)
Gute Heimfahrt!!!

Mit „>“ vornedran sind die Konsoleneingaben gekennzeichnet. Nachdem wir dieses Spiel vorgezeigt bekamen, begannen wir mit der Besprechung vom systematischen Programmieren. Hierzu zählt die Unterteilung des gesamten Programmiervorgangs in vier verschiedene Phasen (Reihenfolge nicht komplett festgelegt):

  • Anfroderungsanalyse: Aufstellen der geforderten Bedingungen für ein erfolgreiches Produkt in Kommunikation mit dem Kunden/ Arbeitgeber,
  • Modelling/Modellierung: Aufstellen von Klassendiagrammen mit Attributen, Konstruktoren und Methoden,
  • Implementierung: Aufstellen eines Grundgerüsts nach dem Entwurf der Klassendiagramme und hinzufügen der Funktionen der Klasse und
  • Testfälle: Formulieren von Testfällen, um die Funktionen aus der Implementierung zu überprüfen und Bugs zu verhindern (Empfehlung von Hr. Karp: nach Aufstellen des Grundgerüsts, die Testfälle entwerfen, um diese bereits bei der Implementierung nutzen zu können).

Daraufhin gab es ein Brainstorming zur Anforderungsanalyse, wobei alle möglichen Ideen an die Mindestanforderungen, sowie bereits bedachte mögliche Erweiterungen (in [ ] sind Erweiterungen gekennzeichnet):

  • Ziel des Spiels definieren (Zielort) [mehr Punkte für kurze Zeit / Zeitlimit (+Gegner nach Zeit)]
  • Bewegbarkeit des Spielers [Steuerung über Pfeiltasten] [mgl. Teleportation zu bekannten Orten]
  • Speichern der Karte und des Spielers mit seiner Position darauf [zufällig erstellte Karte] [Anzeigen der bereits erkundeten Karte]
  • [verschiedene Schwierigkeitsstufen]

Nachdem wir nun die Anforderungsanalyse mit schon möglichen Erweiterungen besprochen haben, begannen wir mit der Modellierung. Dazu hatte Herr Karp bereits auf inf-schule.de ein Klassendiagramm erstellt:

Quelle: https://www.inf-schule.de/content/2-programmierung/3-oopjava/3-beziehungen/4-adventure/1-beschreibung/adventureKlassendiagramm.svg

Dieses hatten wir dann sehr ausführlich besprochen und erklärt gehabt. Damit hatten wir noch kurz Zeit, um ein Grundgerüst des Spiels zu entwerfen. Wer dies nicht geschafft hatte, sollte es als Hausaufgabe erledigen.

Schreibe einen Kommentar