Class Roboter


  • public class Roboter
    extends greenfoot.Actor
    Diese Klasse ist die Oberklasse fuer die Roboter "Robita", "Robson" und "Robby". Programme sollen nur in den Unterklassen implementiert werden, da diese Klasse fuer Java-Beginner sehr komplex ist. Ein Roboter kann sich felderweise in die vier Himmelsrichtungen im Szenario bewegen. Ueber Sensoren kann er Informationen ueber seine Umwelt erhalten.
    • Constructor Summary

      Constructors 
      Constructor Description
      Roboter()
      Ein Objekt der Klasse Roboter wird exempliert bzw. instanziert.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void ablegen​(java.lang.String name)
      Der Roboter legt einen Gegenstand aus seinem Vorrat auf dem Feld ab.
      protected void addedToWorld​(greenfoot.World world)
      Wird aufgerufen, wenn der Roboter in die Welt gesetzt wird; erweitert nach Vorschlag P.Henriksen 29.6.08
      void aufnehmen()
      Der Roboter nimmt einen Gegenstand, der sich auf seinem Feld befindet in seinen Vorrat auf.
      void benutze​(java.lang.String name)
      Benutzt den angegebenen Gegenstand.
      void dreheLinks()
      Der Roboter dreht sich um 90 Grad nach links (aus der Sicht des Roboters).
      void dreheRechts()
      Der Roboter dreht sich um 90 Grad nach rechts (aus der Sicht des Roboters).
      void dreheUm()
      Der Roboter dreht sich um 180 Grad nach rechts (aus der Sicht des Roboters).
      void einsVor()
      Der Roboter geht einen Schritt in die Pfeilrichtung.
      void gehilfeEinsetzen​(Roboter r)
      Diese Methode setzt einen Roboter vor den Roboter, der diese Methode aufruft.
      int getAnzahl()
      Gibt die Anzahl der Gegenstaende, die Roboter traegt, zurueck.
      int getAnzahl​(java.lang.String name)
      Gibt die Anzahl der Gegenstaende einer bestimmten Art zurueck.
      int getEnergie()
      Gibt die Restenergie des Roboters zurück
      boolean hatGegenstand​(java.lang.String name)
      Gibt zurueck, ob der Roboter mindestens einen Gegenstand der angegeben Art besitzt.
      boolean istAufGegenstand()
      Liefert genau dann true, wenn auf der Kachel, auf der sich der aufgerufene Roboter gerade befindet, ein beliebiger Gegenstand befindet.
      boolean istAufGegenstand​(java.lang.String name)
      Liefert genau dann true, wenn auf der Kachel, auf der sich der aufgerufene Roboter gerade befindet, ein Gegenstand mit dem angegebnen Namen befindet.
      boolean istEnergieLeer()
      Gibt zurueck, ob die Energie des Roboters verbraucht ist.
      boolean istInventarLeer()
      Liefert genau dann true, wenn der aufgerufene Roboter keinen Gegenstand bei sich hat.
      boolean istVorne​(java.lang.String name)
      Liefert genau dann true, wenn sich vor dem Roboter ein Gegenstand mit dem angegebnen Namen befindet.
      boolean istVorneFrei()
      Der Sensor ueberprueft, ob vor dem Roboter Hindernisse stehen oder nicht
      boolean istWandLinks()
      Der Sensor ueberprueft, ob sich links der Laufrichtung eine Wand befindet.
      boolean istWandRechts()
      Der Sensor ueberprueft, ob sich rechts der Laufrichtung eine Wand befindet.
      boolean istWandVorne()
      Der Sensor ueberprueft, ob sich in Laufrichtung des Roboters eine Wand befindet.
      void melde​(java.lang.String text, boolean istWichtig)
      Gibt den uebergebenen String in einer Dialogbox auf dem Bildschirm aus
      void setAnzahlVonGegenstand​(java.lang.String name, int anzahl)
      Gibt dem Roboter eine bestimmte Anzahl von Gegenstaenden einer Art
      void setLocation​(int x, int y)
      setLocation(x,y) fuer Roboter wird ueberschrieben, um nicht auf Wand oder anderen Roboter ziehen zu koennen!
      void setRotation​(int x)
      setRotation(x) fuer Roboter wird ueberschrieben, damit nur vier Rotationsrichtungen moeglich sind!
      void verbraucheEnergie​(int verlust)
      Reduziert die Restenergie des Roboters um den angegebenen Wert.
      void warne​(java.lang.String text, greenfoot.Actor actor)
      Gibt den uebergebenen String in einer Dialogbox als Warnung auf dem Bildschirm aus.
      • Methods inherited from class greenfoot.Actor

        act, getImage, getIntersectingObjects, getNeighbours, getObjectsAtOffset, getObjectsInRange, getOneIntersectingObject, getOneObjectAtOffset, getRotation, getWorld, getWorldOfType, getX, getY, intersects, isAtEdge, isTouching, move, removeTouching, setImage, setImage, turn, turnTowards
      • Methods inherited from class java.lang.Object

        clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Roboter

        public Roboter()
        Ein Objekt der Klasse Roboter wird exempliert bzw. instanziert.
    • Method Detail

      • getAnzahl

        public int getAnzahl()
        Gibt die Anzahl der Gegenstaende, die Roboter traegt, zurueck.
        Returns:
        Anzahl der Gegenstaende
      • getAnzahl

        public int getAnzahl​(java.lang.String name)
        Gibt die Anzahl der Gegenstaende einer bestimmten Art zurueck.
        Parameters:
        name - Art der Gegenstands (z.B. "Schluessel")
        Returns:
        Anzahl der Gegenstaende
      • getEnergie

        public int getEnergie()
        Gibt die Restenergie des Roboters zurück
        Returns:
        Energiereserve (0-100)
      • verbraucheEnergie

        public void verbraucheEnergie​(int verlust)
        Reduziert die Restenergie des Roboters um den angegebenen Wert.
        Parameters:
        verlust - Anzahl der verbrauchten Energiepunkte
      • istEnergieLeer

        public boolean istEnergieLeer()
        Gibt zurueck, ob die Energie des Roboters verbraucht ist.
        Returns:
        true, wenn Restenergie =0, sonst false
      • einsVor

        public void einsVor()
        Der Roboter geht einen Schritt in die Pfeilrichtung. Das macht er nur, wenn sich keine Wand vor ihm befindet oder er nicht an der Grenze der Welt zur Wand blickt.
      • dreheRechts

        public void dreheRechts()
        Der Roboter dreht sich um 90 Grad nach rechts (aus der Sicht des Roboters).
      • dreheUm

        public void dreheUm()
        Der Roboter dreht sich um 180 Grad nach rechts (aus der Sicht des Roboters).
      • dreheLinks

        public void dreheLinks()
        Der Roboter dreht sich um 90 Grad nach links (aus der Sicht des Roboters).
      • hatGegenstand

        public boolean hatGegenstand​(java.lang.String name)
        Gibt zurueck, ob der Roboter mindestens einen Gegenstand der angegeben Art besitzt.
        Parameters:
        name - Art des gesuchten Gegenstands
        Returns:
        true, wenn der Roboter einen derartigen Gegenstand hat, sonst false
      • setAnzahlVonGegenstand

        public void setAnzahlVonGegenstand​(java.lang.String name,
                                           int anzahl)
        Gibt dem Roboter eine bestimmte Anzahl von Gegenstaenden einer Art
        Parameters:
        name - Art des Gegenstands
      • benutze

        public void benutze​(java.lang.String name)
        Benutzt den angegebenen Gegenstand. Es koennen nur Schluessel, Schalter, Bombe, Feuerloescher und Akku benutzt werden. Dabei kann ein Schluessel nur direkt vor einem Schloss benutzt werden. Eine Bombe sprengt einen Bereich frei. Der Feuerloescher kann ein direkt vor dem Roboter befindliches Feuer loeschen. Der Akku erhoeht die Restenergie des Roboters.
        Parameters:
        name - Art des zu benutzenden Gegenstands ("Schluessel", "Schalter", "Bombe", "Feuerloescher", "Akku")
      • istAufGegenstand

        public boolean istAufGegenstand()
        Liefert genau dann true, wenn auf der Kachel, auf der sich der aufgerufene Roboter gerade befindet, ein beliebiger Gegenstand befindet.
        Returns:
        true, wenn der Roboter auf einem Gegenstand steht, sonst false
      • istAufGegenstand

        public boolean istAufGegenstand​(java.lang.String name)
        Liefert genau dann true, wenn auf der Kachel, auf der sich der aufgerufene Roboter gerade befindet, ein Gegenstand mit dem angegebnen Namen befindet.
        Parameters:
        name - Einer der Gegenstaende ("Schluessel", "Schalter", "Bombe", "Feuerloescher", "Brennstab", "Akku", "Schraube", "Kontaktplatte", "Oelfleck", "Portal", "Strom", "Feuer", "Aufzug")
        Returns:
        true, wenn der Roboter auf einem Gegenstand steht, sonst false
      • istInventarLeer

        public boolean istInventarLeer()
        Liefert genau dann true, wenn der aufgerufene Roboter keinen Gegenstand bei sich hat.
        Returns:
        true, wenn der Roboter keinen Gegenstand mit sich traegt, sonst false
      • ablegen

        public void ablegen​(java.lang.String name)
        Der Roboter legt einen Gegenstand aus seinem Vorrat auf dem Feld ab.
        Parameters:
        name - Einer der Gegenstaende ("Schluessel", "Schalter", "Bombe", "Brennstab", "Feuerloescher", "Akku", "Schraube", "Kontaktplatte", "Oelfleck", "Portal", "Strom", "Feuer")
      • aufnehmen

        public void aufnehmen()
        Der Roboter nimmt einen Gegenstand, der sich auf seinem Feld befindet in seinen Vorrat auf. Falls er nicht auf einem Gegenstand steht, gibt er eine Warnung aus. Roboter haben nur eine begrenzte Kapazitaet. Sie koennen maximal 99 Gegenstaende mit sich tragen. Falls er einen 100. Gegenstand aufnehmen moechte, wird auch eine entsprechende Warnung ausgegeben.
      • gehilfeEinsetzen

        public void gehilfeEinsetzen​(Roboter r)
        Diese Methode setzt einen Roboter vor den Roboter, der diese Methode aufruft. Ist vor ihm kein Platz, wird eine Warnung ausgegeben.
        Parameters:
        r - der Hilfsroboter, der eingesetzt werden soll
      • istVorneFrei

        public boolean istVorneFrei()
        Der Sensor ueberprueft, ob vor dem Roboter Hindernisse stehen oder nicht
        Returns:
        true, wenn vor dem Roboter frei ist, sonst false
      • istVorne

        public boolean istVorne​(java.lang.String name)
        Liefert genau dann true, wenn sich vor dem Roboter ein Gegenstand mit dem angegebnen Namen befindet.
        Parameters:
        name - Einer der Gegenstaende ("Schluessel", "Schalter", "Schloss", "Bombe", "Feuerloescher", "Akku", "Schraube", "Kontaktplatte", "Oelfleck", "Portal", "Strom", "Feuer", "Aufzug")
        Returns:
        true, wenn der Roboter vor dem Gegenstand mit dem Namen name steht, sonst false
      • istWandVorne

        public boolean istWandVorne()
        Der Sensor ueberprueft, ob sich in Laufrichtung des Roboters eine Wand befindet.
        Returns:
        true, wenn der Roboter vor einer Wand steht, sonst false
      • istWandRechts

        public boolean istWandRechts()
        Der Sensor ueberprueft, ob sich rechts der Laufrichtung eine Wand befindet.
        Returns:
        true, wenn sich rechts von dem Roboter eine Wand befindet, sonst false
      • istWandLinks

        public boolean istWandLinks()
        Der Sensor ueberprueft, ob sich links der Laufrichtung eine Wand befindet.
        Returns:
        true, wenn sich links von dem Roboter eine Wand befindet, sonst false
      • melde

        public void melde​(java.lang.String text,
                          boolean istWichtig)
        Gibt den uebergebenen String in einer Dialogbox auf dem Bildschirm aus
        Parameters:
        text - Der Text, der angezeit werden soll
        istWichtig - bei true wird der Text "Achtung! Besonders wichtige Meldung:" in die Kopfzeile geschrieben, sonst nur der Text "Meldung!"
      • warne

        public void warne​(java.lang.String text,
                          greenfoot.Actor actor)
        Gibt den uebergebenen String in einer Dialogbox als Warnung auf dem Bildschirm aus. Dadurch wird der uebergebene Actor actor von der Roboterwelt entfernt und diese neu gezeichnet.
        Parameters:
        text - Der Text, der angezeit werden soll
        actor - Der Actor, der ggf. entfernt werden soll
      • addedToWorld

        protected void addedToWorld​(greenfoot.World world)
        Wird aufgerufen, wenn der Roboter in die Welt gesetzt wird; erweitert nach Vorschlag P.Henriksen 29.6.08
        Overrides:
        addedToWorld in class greenfoot.Actor
        Parameters:
        world - Die Welt in die ein Roboter gesetzt wurde
      • setLocation

        public void setLocation​(int x,
                                int y)
        setLocation(x,y) fuer Roboter wird ueberschrieben, um nicht auf Wand oder anderen Roboter ziehen zu koennen! -- setzt den Roboter auf eine Kachel, deren Spalte x sowie Reihe y du hier vorgibst. Die Nummerierung beginnt jeweils bei 0 !!)
        Overrides:
        setLocation in class greenfoot.Actor
        Parameters:
        x - die x-Koordinate
        y - die y-Koordinate
      • setRotation

        public void setRotation​(int x)
        setRotation(x) fuer Roboter wird ueberschrieben, damit nur vier Rotationsrichtungen moeglich sind!
        Overrides:
        setRotation in class greenfoot.Actor
        Parameters:
        x - die Richtung (0=Osten, 90=Sueden, 180=Westen, 270=Norden)