s n h m r u

Minimallogo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

s n h m r u
i

Spielfeld

Eine Klasse für das Spielfeld

Jedes Spiel braucht ein Spielfeld. Lege dafür - genau wie bei Tierisch Glücklich - eine neue Klasse mit dem Namen Spielfeld an und lösche den automatisch erzeugten Beispielcode.

Bei Ausgebüxt zählt am Ende, wie viele Schritte du gebraucht hast, um alle Tiere einzufangen. Unser Spielfeld soll deshalb als erstes die gespielten Schritte zählen können. Dafür braucht es

  • ein Attribut schritte, das bei 0 startet, und
  • eine Methode act, die einen einzelnen Spielschritt ausführt: Sie erhöht schritte um 1 und gibt den neuen Wert mit println aus.

Der Name act (englisch für handeln) ist bei Spielen üblich für die Methode, die einen einzelnen Schritt ausführt. Wähle den Namen genau so, das wird später noch wichtig.

Für das Erhöhen des Attributs findest du hier drei Vorschläge:

// Vorschlag 1
fun act() {
    schritte = schritte + 1
    println(schritte)
}
// Vorschlag 2
fun act() {
    schritte++
    println(schritte)
}
// Vorschlag 3
fun act() {
    schritte + 1
    println(schritte)
}

Aufgabe 1

Implementiere die Klasse Spielfeld mit dem Attribut schritte. Überlege dann, welche der drei Vorschläge für act funktionieren könnten und welche nicht. Überprüfe deine Vermutung in BlueJ: Erzeuge ein Spielfeld-Objekt und rufe act mehrfach per Rechtsklick auf. Beobachte dabei die Ausgabe im Terminal und das Attribut im Objektinspektor. Entscheide dich für einen funktionierenden Vorschlag.
schritte++ ist eine Kurzschreibweise für schritte = schritte + 1. Du wirst sie in Spielen oft sehen, weil dort ständig etwas hochgezählt wird.

Aufgabe 2

Erzeuge ein zweites Spielfeld-Objekt und rufe nur bei diesem ein paar Mal act auf. Sage voraus, welche Werte die beiden Objektinspektoren jetzt bei schritte anzeigen. Überprüfe deine Vorhersage und erkläre sie mit den Begriffen Klasse, Objekt und Attribut.

Suche

v
100.123.2.2.2 Spielfeld
Kopieren durch Anklicken

Rückmeldung geben