LÖSUNGEN AUFGABE 1.02
- Was bewirkt die Methode move()?
Kara geht ein Feld nach vorne. - Platzieren Sie zwei Karas in Ihrer Welt und sorgen Sie dafür, dass sie sich anschauen. Welche Methode brauchen Sie dazu?
turnLeft() oder turnRight() - Testen Sie die weiteren Methoden. In welche zwei Arten können die Methoden unterteilt werden?
Methoden mit void: führen nur eine Aktion aus.
Methoden mit boolean: Öffnen ein Fenster mit dem Methodenergebnis.
LÖSUNGEN AUFGABE 1.03
- Rufen Sie die Methode
onLeaf()
für einen Kara auf. Liefert Sie immerfalse
zurück? Oder gibt es auch Situationen, in denen sietrue
zurückliefert?
Wenn Kara auf einem Blatt steht, liefert die Methode true zurück. - Setzen Sie zusätzlich einen Baum (Tree) in die Welt. Mit welcher Methode können Sie überprüfen, ob Kara vor einem Baum steht?
treeFront() - Was passiert, wenn Sie Kara mittels der Methode
move()
in einen Baum fahren lassen?
Kara reklamiert dass er sich nicht bewegen kann.
LÖSUNGEN AUFGABE 1.04
Welchen Zustandswerte hat Kara in den folgenden Situationen?
x: 0, y: 0, rotation: 0
x: 1, y: 2, rotation: 180
LÖSUNGEN AUFGABE 1.05
- Platzieren Sie ein Objekt von
MyKara
in Ihre Welt. Welche Methode haben Sie nun neu zur Verfügung?
act() - Was macht diese Methode?
Schritt vorwärts, Drehung nach rechts, Schritt vorwärts - Was passiert, wenn Sie in der Greenfoot-Steuerung (unten links) auf den Act-Button drücken?
Das Gleiche wie vorher. Die act()-Methode wird aufgerufen. - Klicken Sie auf den Run-Button. Was geschieht? (Versuchen Sie mal die Geschwindigkeit zu verstellen)
act() wird immer wieder aufgerufen, bis man auf Pause drückt. - Welche Methoden finden Sie unter Rechtsklick | inherited from Kara? Können Sie die auch benutzen?
Alle Methoden von Kara. Die können auch von MyKara benutzt werden.
LÖSUNGEN AUFGABE 1.06
public class MyKara extends Kara { public void act() { move(); putLeaf(); move(); stop(); } }
LÖSUNGEN AUFGABE 1.07
public class MyKara extends Kara { public void act() { move(); turnLeft(); move(); turnRight(); move(); move(); turnRight(); move(); turnLeft(); turnLeft(); move(); turnRight(); move(); move(); turnRight(); move(); turnLeft(); move(); turnLeft(); move(); turnRight(); move(); move(); turnRight(); move(); turnLeft(); removeLeaf(); stop(); } }
Erklärungen
- Die Kommentare im Quelltext wurden weggelassen (= der Text, welcher im Greenfoot-Editor entweder grau oder blau dargestellt wird).
Kommentare schreibt man in den Quelltext als zusätzliche Informationen. Die Kommentare sind für Menschen und werden vom Computer ignoriert. Es gibt drei Möglichkeiten, um Kommentare in den Quelltext zu schreiben:- Mit zwei Schrägstrichen
//
(nach den Strichen gilt der Rest der Zeile als Kommentar) - Längere Kommentare über mehrere Zeilen schliesst man mit
/*
und*/
ein. - Kommentare für Methoden und Klassen werden zwischen
/**
und*/
geschrieben.
- Mit zwei Schrägstrichen
- Die Methode
stop()
bewirkt, dass nach deract()
-Methode gestoppt wird, auch wenn der Run-Knopf gedrückt wurde.
LÖSUNGEN AUFGABE 1.08
public class MyKara extends Kara { public void act() { move(); goAroundTree(); goAroundTree(); move(); goAroundTree(); removeLeaf(); stop(); } public void goAroundTree() { turnLeft(); move(); turnRight(); move(); move(); turnRight(); move(); turnLeft(); } }
Erklärungen
- Zur besseren Übersicht und um zu vermeiden, dass wir dreimal den gleichen Code schreiben müssen, haben wir eine neue Methode
goAroundTree()
eingeführt. - Dem Namen der Methode werden hier zwei Schlüsselwörter
public void
vorangestellt.
public
bedeutet, dass die Methode auch von ausserhalb aufgerufen werden kann.
void
(engl. Leer) bedeutet, dass die Methode keinen Wert zurückliefert. - Hinter jeder Methode steht das Klammerpaar
()
, was bedeutet, dass die Methode keine Parameter übergeben bekommt. Später werden wir Methoden mit Parametern kenne lernen.