Spielelogik
Basisversion
Die Hauptarbeit ist mit der Implementierung des Stapels schon erledigt. Zum Spielen benötigt man mehrere Stapel von Karten und ein paar wenige Methoden, um das Spiel zu steuern.
Achtung: throw
ist in Java ein Schlüsselwort,
genau wie z.B. while
oder if
.
Deshalb darf der "Wegwerfstapel" nicht throw
heißen, sondern z.B.
throwStapel
.
Konstruktor
Im Konstruktor werden die drei Stapel erzeugt und der gemischte Stapel z.B. mit 10 Karten gefüllt.
Aufgabe 1 - Konstruktor
Implementiere den Konstruktor. Teste den Erfolg mit Hilfe des Objektinspektors auf folgende Art:
Betrachten der nächsten Karte
Die Methode betrachteNaechsteKarte
zeigt den Wert der obersten Karte an:
Aufgabe 2 - betrachteNaechsteKarte
Implementiere die Methode und teste sie.
Karten ablegen
Die Methode behalten
wird aufgerufen, um die aktuelle Karte
auf dem keep-Stapel anzulegen.
Man kann sie z.B. so umsetzen:
Aufgabe 3 - behalten
Implementiere die Methode. Du musst sie nicht genau wie im Struktogramm umsetzen, es wäre z.B. auch denkbar eine Karte, die zu klein ist zum Behalten, automatisch auf den throw-Stapel zu legen. Teste die Implementierung mit dem Objektinspektor, ähnlich wie bei Aufgabe 1.
Achtung: Du musst eine Karte erst von einem Stapel abheben, bevor Du sie auf einen anderen Stapel legen kannst. Dies entspricht auch der Logik eines realen Stapels. Warum das so wichtig ist, kannst Du Dir bei den Übungen klar machen.Aufgabe 4 - wegwerfen
Ähnlich der behalten
-Methode wird die Methode wegwerfen
implementiert. Allerdings sind weniger Fallunterscheidungen notwendig, da man
eine gezogene Karte in jedem Fall auf den throw-Stapel legen darf.
Implementiere die Methode.
Spiel auswerten
Wenn der gemischte Stapel leer ist, möchte man vermutlich das Spiel auswerten. Dazu kann man folgendermaßen vorgehen:
Aufgabe 5 - auswerten
Erkläre die einzelnen Schritte und implementiere die Methode.
Eigene Variante des Spiels
Das Spiel ist nun fertig und spielbar. Sicher fallen Dir einige Dinge ein, wie man das Spiel variieren könnte. Einige Ideen:
- Der Benutzer soll nicht über die BlueJ-Oberfläche die Methoden auswählen müssen. Stattdessen soll das Spiel komplett über Tastatureingaben gesteuert werden. Wie man Benutzereingaben liest, kannst Du z.B. unter Anhang - Java Schnipsel nachschauen.
- Mehrere Spieler spielen im Wechsel. Der Spieler, der insgesamt mehr Karten behalten hat, gewinnt.
- Mehrere Spieler spielen mit einem gemeinsamen gemischten Stapel und jeweils einem eigenen keep-Stapel.
- ... sei kreativ ...
Aufgabe 6 - Eigene Variante
Erweitere das Spiel nach Deinen eigenen Ideen.