![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|||||
Innerhalb Ihrer Klasse haben Sie Zugriff auf drei Objekte. Sie sollten diese Objekte nie ändern! Unten finden Sie eine Übersicht der Methoden dieser Objekte:
kara
-
die Schnittstelle von Ihrem Programm zu Kara
world
-
Sie können mit einigen Operationen direkt die Welt manipulieren
tools
-
nützliche Methoden zum Beispiel für die String-Ausgabe
Wie funktioniert RubyKara? Wenn Sie ein eigenes Programm ausführen, wird ein neuer Thread gestartet. Wichtig dabei: Da Ihr Programm in einem eigenen Thread läuft, kann RubyKara keinen Einfluss nehmen zum Beispiel auf die Ausführungsgeschwindigkeit Ihres Programmes oder etwa Ihr Programm stoppen.
Deshalb wird ein kleiner Trick angewendet: jedesmal, wenn Sie einen Befehl von Kara aufrufen – kara.move() oder kara.turnRight() etc – wird die Methode tools.checkState() aufgerufen. Diese Methode prüft, ob das Programm pausieren oder anhalten soll; ansonsten legt Sie den Thread entsprechend der Einstellung des Geschwindigkeitsreglers schlafen. Sie sollten unbedingt darauf achten, dass Ihre Programme entweder irgendeine Kara-Methode oder die tools.checkState()-Methode aufrufen! Sonst können Sie zum Beispiel Endlosschleifen programmieren, die Sie nicht mehr stoppen können, ohne RubyKara zu beenden.
kara |
|
void move() |
Schritt vorwärts |
void turnLeft() |
90°-Linksdrehung |
void turnRight() |
90°-Rechtsdrehung |
void putLeaf() |
Kleeblatt hinlegen |
void removeLeaf() |
Kleeblatt aufnehmen |
boolean treeFront() |
Kara vor Baum? |
boolean treeLeft() |
Baum links von Kara? |
boolean treeRight() |
Baum rechts von Kara? |
boolean onLeaf() |
Kara auf Kleeblatt? |
boolean mushroomFront() |
Kara vor Pilz? |
void setPosition (int x, int y) |
Kara von Position (x,y) |
java.awt.Point getPosition() |
Koordinaten der aktuellen Position |
world |
|
void clearAll() |
Alle Elemente entfernen |
void setLeaf (int x, int y, boolean putLeaf) |
Blatt legen oder entfernen |
void setTree (int x, int y, boolean putTree) |
Baum setzen oder entfernen |
void setMushroom (int x, int y, boolean putMushroom) |
Pilz setzen oder entfernen |
void setSize (int newSizeX, int newSizeY) |
Grösse der Welt ändern |
boolean isEmpty (int x, int y) |
Ist das Feld leer? |
boolean isTree (int x, int y) |
Ist ein Baum auf dem Feld? |
boolean isMushroom (int x, int y) |
Ist ein Pilz auf dem Feld? |
boolean isLeaf (int x, int y) |
Ist ein Blatt auf dem Feld? |
int getSizeX() |
Horizontale Grösse der Welt |
int getSizeY() |
Vertikale Grösse der Welt |
tools |
|
void println (String string) |
String auf Standard-Ausgabe schreiben |
void showMessage (String message) |
String in Dialogfenster ausgeben |
int random (int bound) |
Liefert Zufallszahl aus Bereich [0..bound] |
void checkState() |
Schaut auf den Geschwindigkeitsregler |
void sleep (int ms) |
Schläft ms Millisekunden |
String stringInput (String title) |
String in einem Dialogfenster mit Titel title eingeben; gibt null zurück,
wenn der Dialog mit Cancel abgebrochen wurde |
int intInput (String title) |
Ganzzahl in einem Dialogfenster mit Titel title eingeben; gibt Integer.MIN_VALUE zurück,
wenn der Dialog mit Cancel abgebrochen wurde oder nicht eine Ganzzahl eingegeben wurde |
double doubleInput (String title) |
Fliesskommazahl in einem Dialogfenster mit Titel title eingeben; gibt Double.MIN_VALUE zurück,
wenn der Dialog mit Cancel abgebrochen wurde oder nicht eine Fliesskommazahl eingegeben wurde |