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

Spiel verbessern

Abstand zum Rand

Das abgeleitete Attribut imSicherenBereich liefert nur true oder false. Für eine Warnanzeige wäre dagegen interessant, wie weit eine Ente vom nächsten Rand entfernt ist. Die Funktion minOf liefert den kleinsten ihrer Parameter. Wie bei der bisherigen Randprüfung liegen die äußeren Begrenzungslinien bei 0, world.width und world.height:

val abstandZumRand: Int
    get() {
        return minOf(
            x,
            world.width - x,
            y,
            world.height - y
        )
    }

Aufgabe 1

Ergänze das abgeleitete Attribut abstandZumRand in der Klasse Ente. Ändere den Getter von imSicherenBereich so, dass er nur noch prüft, ob abstandZumRand größer als 40 ist. Teste das Spiel erneut.

Wir können nun warnen, wenn eine Ente sich dem Rand nähert. Dazu müssen wir überprüfen, ob abstandZumRand kleiner als ein bestimmter Wert ist. Falls ja, soll eine Warnanzeige erscheinen. Die Anzeige kann beispielsweise aus einem Text bestehen, der an einer festen Position auf dem Bildschirm erscheint.

Aufgabe 2

Ergänze in der Methode act() der Klasse Ente eine Warnanzeige, die erscheint, sobald abstandZumRand einen bestimmten Wert unterschreitet. Die Anzeige soll verschwinden, sobald die Ente wieder weiter vom Rand entfernt ist.

Eigene Erweiterungen

Du kannst das Spiel auch selbst erweitern. Zum Beispiel könntest du die Anzahl der Enten und Krokodile verändern, die Geschwindigkeit anpassen oder den Schwierigkeitsgrad im Verlauf des Spiels erhöhen. Auch die Größe oder Farbe des sicheren Bereichs lässt sich verändern. Oder du entwickelst eine eigene Spielregel.

Aufgabe 2

Überlege dir eine eigene Erweiterung für das Spiel und setze sie um.

Suche

v
100.123.3.2.4 Spiel verbessern
Kopieren durch Anklicken

Rückmeldung geben