Keep or Throw und Unit-Tests

Spielkonzept von Keep or Throw

Keep or Throw ist simpel. Man braucht lediglich ein Skat Karten-Deck (7 bis Ass). Nach gründlichem Mischen bereitet man einen Stapel von (standardmäßig) zehn Karten vor, von dem man mit jedem Spielzug eine Karte zieht. Eine gezogene Karte kann man auf seinen Stapel oder beiseite legen, womit sie aus dem Spiel ist. Auf den eigenen Stapel darf man nur Karten legen, die größer sind als die bereits auf dem Stapel liegenden Karten. Ziel des Spiels ist es möglichst viele Karten auf den eigenen Stapel zu legen,bevor der Zug-Stapel leer ist. Das Spiel kann wahlweise auch mit mehreren Spielern gespielt werden. Dabei zieht man abwechselnd vom Zug-Stapel, welcher dementsprechend größer sein sollte.

Umsetzung in BlueJ

Um Keep or Throw in BlueJ umzusetzen braucht man selbstverständlich einen Stapel mit folgenden Funktionen:

  • Karte wegnehmen pop()
  • Karte ablegen push()
  • oberste Karte anschauen top()
  • nach Karten prüfen isEmpty()

Die Karten müssen außerdem in einer festen Reihenfolge auf dem Stapel liegen. In BlueJ kann man das lösen, indem der der Stapel selbst nur ein Karten Objekt, nämlich die Oberste Karte, kennt bzw. hat. Die einzelnen Karten kennen jeweils ihren Nachfolger auf dem Stapel, womit eine Reihenfolge festgelegt ist.

Das Klassendiagramm mit diesen Funktionen sieht dann folgendermaßen aus:

Klassendiagramm für Stapel von Karten
https://www.inf-schule.de/programmierung/oopjava/beziehungen/keeporthrow/stapel

Anmerkung: Karte hat zwei Konstruktoren, damit man eine Karte mit zufälligen Wert Karte() oder mit im Parameter bestimmten Wert Karte(wert: int) erstellen kann.

Unit-Tests

Mit Testklassen lassen sich in Java Unit-Tests durchführen, um seinen Code auf Fehler zu überprüfen, ohne ihn manuell testen zu müssen. In BlueJ erzeugt man diese, indem man auf eine Klasse rechtsklickt und ‚Testklasse erzeugen‘ wählt.

In dieser kann man Testmethoden erzeugen, was man in BlueJ auch einfach in der Benutzeroberfläche machen kann.

Beim erzeugen einer solchen Methode wird ganz einfach der ‚Aufzeichnungs-Modus‘ gestartet. Alles, was man jetzt bis zum manuellen Stoppen der Aufzeichnung macht, wird aufgezeichnet und später beim Ausführen der Methode wiederholt. Bei Rückgaben lässt sich unten Rechts im Fenster angeben, welcher Wert zu erwarten ist.

Wenn dieser beim Ausführen nicht erreicht wird, bekommt man eine Meldung, die einem die fehlerhafte Aktion zeigt.

Es macht Sinn eine solche Testklasse vor dem eigentlichen Programmieren zu erstellen. Zum Erstellen selbst braucht man nämlich nur das Grundgerüst der Klasse und Dummy-Werte als Rückgabe damit die Klasse syntaktisch Korrekt ist. So lässt sich der später eventuell kompliziertere Code ganz leicht mit einem Mausklick testen.

Hausaufgaben

Hausaufagbe war es, den Exkurs Unit-Test bis einschließlich Aufgabe 1 durchzuarbeiten. https://www.inf-schule.de/programmierung/oopjava/beziehungen/keeporthrow/unittests

Ein Kommentar zu „Keep or Throw und Unit-Tests

Schreibe einen Kommentar