Programmieren in Greenfoot - Wer kann mir helfen?

1 Antwort

1) Überlege dir, wie der Ablauf für dein Programm aussehen soll. Meiner Meinung nach sind da noch mehrere Punkte undefiniert. Beispielsweise, wie die Maskenobjekte generiert werden (Einmal zufällig in der Welt oder dynamisch? Bewegen sie sich nach irgendeinem Muster oder bleiben sie starr an ihrer Spawn-Position? Wie bewegt sich der Virus? ...).

2) Überlege dir, welche Klassen, Felder und Methoden du dafür benötigst.

Ich würde für die Maskentypen wohl zu einer Enumeration tendieren. Falls du Enums nicht kennst, dürfte es für dich aber einfacher sein, einfach eine Klasse je Typ anzulegen, die von Actor erbt.

Der Virus braucht ebenfalls eine Subklasse von Actor mitsamt einer Methode, die ihm hilft, sich zu bewegen. Für eine Kollisionsabfrage mit anderen Objekten kannst du die isTouching-Methode verwenden.

3) Arbeite auch sonst mit der API Referenz. Nach vorimplementierten Methoden, um beispielsweise Objekten aus der Welt zu entfernen, kannst du in ihr nachschlagen.


Lisahamburg2001 
Beitragsersteller
 30.12.2020, 18:46

Danke für die Hilfe! Wir haben auch noch eine Erweiterungsaufgaben, die wie folgt lautet:

Füge eine Tastensteuerung ein. Mit Pfeil oben/unten/links/rechts kannst du das Virus durch die Welt steuern.

Das erklärt ja eigentlich dein Punkt zum generieren der Maskenobjekte.

0
regex9  30.12.2020, 19:08
@Lisahamburg2001

Für den Virus ja, doch für die Masken noch nicht. Mir fallen mehrere Möglichkeiten ein, wie sich die Masken verhalten könnten.

  • Sie werden zu Programmstart an festen (oder zufälligen) Punkten auf der Weltkarte gesetzt und bewegen sich auch nicht. Bei Kollision mit einer unsicheren Maske könnte eine neue Maske irgendwo auf dem Feld erstellen werden - oder nicht.
  • Masken könnten während des Spielverlaufs an zufälligen Koordinaten auftauchen.
  • Masken könnten sich über das Spielfeld bewegen. Vielleicht abgesteckte Routen, oder sprunghaft / wirr.

Der letztgenannte Punkt wäre natürlich am schwierigsten umzusetzen und der erste Punkt am einfachsten. Da die Aufgabe nicht eindeutig definiert, ist die Anforderung von dir aber wohl frei formulierbar.

0