i

Übungen

Erweiterungen und Übungen zu "Frog"

Aufgabe 1 - Greenfoot-Klassen

Aufgabe 2 - Frog erweitern

Das Spiel lässt sich auf vielfältige Art verschönern und erweitern:

  1. Beim Start oder Beenden des Spiels soll eine kurze Audiodatei abgespielt werden. (Quelle, Lizenz: CC-BY-NC-SA 3.0) Suche in der Klassendokumentation nach einer Klassenmethode (statische Methode) in der Klasse Greenfoot.
  2. Die Grafik des Frosches soll beim Sterben kleiner werden. Ein Actor kann sein GreenfootImage abrufen. Ein GreenfootImage hat entsprechende Fähigkeiten.
  3. Gegessene Fliegen sollen halbtransparent sein anstatt zu verschwinden. Natürlich soll eine Fliege nicht zwei mal gegessen werden können. Lösungsidee aus Sicht des Frosches: Wenn ich eine Fliege berühre mache ich folgendes: Ich lasse mir die Fliege und dann deren Bild zurück geben. Falls die Transparenz des Bildes noch dem Standardwert entspricht, kann ich diese noch essen. Dann mache ich also folgendes: Ich verändere die Transparenz und erhöhe mein Kraft. Implementierungshinweise: Du benötigst eine Methode aus Actor, die einen anderen Actor, den man schneidet, zurück gibt. Der zurückgegebene Actor soll die Fliege sein. Von diesem Actor lässt man sich das GreenfootImage zurück geben und liest die Transparenz.
  4. Die Kraft des Frosches soll immer bei der Grafik angezeigt werden. Du benötigst zuerst ein neues Attribut, das entweder das ursprüngliche GreenfootImage oder den Namen der dazugehörigen Datei speichert. Dieses wird bei jedem act-Schritt neu als Bild gesetzt und mit dem aktuellen Stand der Kraft beschriftet. Dazu benötigst Du eine Methode aus GreenfootImage, die eine Zeichenkette auf das Bild zeichnet. Implementierungshinweis: Zahlen kann man durch Verkettung mit einer Zeichenkette in eine Zeichenkette umwandeln, z.B. mit "K:" + 5 oder auch nur 5 + ""
  5. Wenn man eine Fliege gegessen hat, soll kurz eine 10 als Grafik erscheinen. Diese soll anzeigen, dass man gerade 10 Punkte bekommen hat. Nach ein paar Act-Schritten soll diese verschwinden.
  6. Sorge dafür, dass Fliegen und Störche beim Erzeugen der Welt nicht übereinander liegen. (schwer)

Bestimmt fallen Dir tolle, eigene Erweiterungen ein...

Aufgabe 3 - Anzeige auf der Welt

Beim Beenden des Spiels soll auf der Welt "Game Over" angezeigt werden. Zwei Varianten zur Ergänzung der act-Methode des Frosches werden Dir angeboten:

FrogWorld w = getWorld();
w.showText("Game Over", 4, 3);
World w = getWorld();
w.showText("Game Over", 4, 3);

Nur eine der beiden Varianten funktioniert. Begründe - möglichst ohne vorheriges Testen - welche funktioniert. Stichworte: Signatur der Methode getWorld() in der Doku, Vererbung, "Ein Schüler ist ein Mensch, aber ein Mensch ist nicht unbedingt ein Schüler."

Weitere Übungen

Aufgabe 4 - Java Klassenbibliothek

Java stellt viele Klassen direkt zur Verfügung. Öffne deren Dokumentation z.B. in Greenfoot über Hilfe→ Java Klassenbibliotheken. Erkunde die Klassen String und Random und experimentiere im Codepad, um folgende Aufgaben zu lösen:

  • Die Länge einer Zeichenkette soll zurückgegeben werden.
  • Es soll überprüft werden, ob eine Zeichenkette mit "Hallo" beginnt.
  • Eine Zufallszahl zwischen 0 und 9 soll berechnet werden.
  • Es soll ein zufälliger Wahrheitswert berechnet werden.

(Zusatzaufgabe: Was hat es mit dem seed auf sich? Kann man denn überhaupt Zufall berechnen? Informiere Dich über Pseudo-Zufallszahlen und deren Berechnung. )

Aufgabe 5 - Schleifen

  1. Die Zahlen von 20 bis 1 sollen abwärts ausgegeben werden. Erstelle eine Variante mit while-Schleife und eine Variante mit for-Schleife.
  2. Schreibe eine Methode, die als Parameter eine ganze Zahl übergeben bekommt. Die Methode soll dann alle geraden Zahlen, die kleiner oder gleich n sind, ausgeben. Erstelle eine Variante mit while-Schleife und eine Variante mit for-Schleife. (Tipp: Der Modulo-Operator % berechnet den Rest einer Division. Beispiel: 14 % 5 ergibt 4.
  3. Berechne den Durchschnitt von 1000 Zufallszahlen aus dem Bereich von 0..10. (Zur Erinnerung: Eine Zufallszahl lässt sich z.B. mit Hilfe des Ausdrucks new java.util.Random().nextInt(...) berechnen.)
  4. Schreibe eine Methode, die als Parameter eine ganze Zahl übergeben bekommt. Die Methode soll dann die Summe aller Quadratzahlen bis zu dieser Zahl berechnen und zurück geben. (z.B. f(20) = 1 + 4 + 9 + 16 = 30). Wähle eine geeignete Schleifenvariante.
  5. Berechne wie oft man durchschnittlich würfeln muss, um einen Zweierpasch zu würfeln.
  6. Formuliere möglichst viele Varianten für Endlosschleifen. Darunter auch mindestens eine for-schleife.

Suche

v
7.1.2.3.6
dev.inf-schule.de/oop/java/implementierung/frog/uebungen
dev.inf-schule.de/7.1.2.3.6
dev.inf-schule.de/@/page/1Qu4gXkADgQAk6R7

Rückmeldung geben