RubyKara
Weltfenster
Programmfenster
RubyKaraProgramm
Info

Innerhalb Ihrer Klasse haben Sie Zugriff auf drei Objekte. Sie sollten diese Objekte nie ändern! Unten finden Sie eine Übersicht der Methoden dieser Objekte:

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