Class Figur

  • Direct Known Subclasses:
    Bauer, Huhn, Schaf

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

      Constructors 
      Constructor Description
      Figur​(String name)
      Ein Objekt der Klasse Figur wird exempliert bzw. instanziert.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void benutze​(String name)
      Benutzt den angegebenen Gegenstand.
      void dreheLinks()
      Der Figur dreht sich um 90 Grad nach links (aus der Sicht des Figurs).
      void dreheRechts()
      Der Figur dreht sich um 90 Grad nach rechts (aus der Sicht des Figurs).
      void einsVor()
      Der Figur geht einen Schritt in die Pfeilrichtung.
      int getDurst()
      Gibt die Durstigkeit der Figur zurück
      int getHunger()
      Gibt den Sättigungsgrad der Figur zurück
      protected Gegenstand gibGegenstandUnterFigur()
      Gibt den Gegenstand zurueck, auf dem sich ein Figur befindet
      protected Gegenstand gibGegenstandUnterFigur​(String name)
      Gibt den Gegenstand zurueck, auf dem sich ein Figur befindet
      protected Gegenstand gibGegenstandVorFigur​(String name)
      Gibt den Gegenstand zurueck, auf dem sich ein Figur befindet
      boolean istAuf​(String name)
      Liefert genau dann true, wenn auf der Kachel, auf der sich der aufgerufene Figur gerade befindet, ein Gegenstand mit dem angegebnen Namen befindet.
      boolean istAufGegenstand()
      Liefert genau dann true, wenn auf der Kachel, auf der sich der aufgerufene Figur gerade befindet, ein beliebiger Gegenstand befindet.
      boolean istLinksFrei()
      Der Sensor ueberprueft, ob sich links der Laufrichtung eine Wand befindet.
      boolean istRechtsFrei()
      Der Sensor ueberprueft, ob sich rechts der Laufrichtung eine Wand befindet.
      boolean istVorne​(String name)
      Liefert genau dann true, wenn auf der Kachel, auf der sich der aufgerufene Figur gerade befindet, ein Gegenstand mit dem angegebnen Namen befindet.
      boolean istVorneFrei()
      Der Sensor ueberprueft, ob vor dem Figur Hindernisse stehen oder nicht
      int pruefe​(String name)  
      protected void refresh()  
      void setLocation​(int x, int y)
      setLocation(x,y) fuer Figur wird ueberschrieben, um nicht auf Wand oder anderen Figur ziehen zu koennen!
      void setRotation​(int x)
      setRotation(x) fuer Figur wird ueberschrieben, damit nur vier Rotationsrichtungen moeglich sind!
      void verbraucheEnergie​(int verlust)
      Erhöhrt den Hunger des Figurs um den angegebenen Wert.
      protected boolean verbraucheEnergie​(int hunger, int durst)  
      void warte()  
      protected void zeichneImage()
      Eine private Methode, die dafuer sorgt, dass der "Aufdruck" auf dem Figur (Anzahl der Gegenstaende), der Akkustandsbalken und der Richtungspfeil aktualisiert werden
      • Methods inherited from class greenfoot.Actor

        act, getImage, getIntersectingObjects, getNeighbours, getObjectsAtOffset, getObjectsInRange, getOneIntersectingObject, getOneObjectAtOffset, getRotation, getWorld, getWorldOfType, intersects, isAtEdge, isTouching, move, removeTouching, setImage, setImage, turn, turnTowards
    • Field Detail

      • hunger

        protected int hunger
      • durst

        protected int durst
      • kostenBewegung

        protected int kostenBewegung
      • kostenWarten

        protected int kostenWarten
    • Constructor Detail

      • Figur

        public Figur​(String name)
        Ein Objekt der Klasse Figur wird exempliert bzw. instanziert.
    • Method Detail

      • getHunger

        public int getHunger()
        Gibt den Sättigungsgrad der Figur zurück
        Returns:
        0= groß - 100=satt
      • getDurst

        public int getDurst()
        Gibt die Durstigkeit der Figur zurück
        Returns:
        0= groß - 100=keinen Durst
      • verbraucheEnergie

        public void verbraucheEnergie​(int verlust)
        Erhöhrt den Hunger des Figurs um den angegebenen Wert.
        Parameters:
        verlust - Anzahl der verbrauchten Energiepunkte
      • verbraucheEnergie

        protected boolean verbraucheEnergie​(int hunger,
                                            int durst)
      • einsVor

        public void einsVor()
        Der Figur 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 Figur dreht sich um 90 Grad nach rechts (aus der Sicht des Figurs).
      • dreheLinks

        public void dreheLinks()
        Der Figur dreht sich um 90 Grad nach links (aus der Sicht des Figurs).
      • warte

        public void warte()
      • refresh

        protected void refresh()
      • pruefe

        public int pruefe​(String name)
      • benutze

        public void benutze​(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 Figur befindliches Feuer loeschen. Der Akku erhoeht die Resthunger des Figurs.
        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 Figur gerade befindet, ein beliebiger Gegenstand befindet.
        Returns:
        true, wenn der Figur auf einem Gegenstand steht, sonst false
      • istAuf

        public boolean istAuf​(String name)
        Liefert genau dann true, wenn auf der Kachel, auf der sich der aufgerufene Figur 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 Figur auf einem Gegenstand steht, sonst false
      • gibGegenstandUnterFigur

        protected Gegenstand gibGegenstandUnterFigur()
        Gibt den Gegenstand zurueck, auf dem sich ein Figur befindet
        Returns:
        Gegenstand (entweder "Schluessel", "Schalter", "Bombe", "Feuerloescher", "Akku", "Schraube", "Kontaktplatte", "Oelfleck", "Portal", "Strom", "Feuer", "Aufzug")
      • gibGegenstandUnterFigur

        protected Gegenstand gibGegenstandUnterFigur​(String name)
        Gibt den Gegenstand zurueck, auf dem sich ein Figur befindet
        Returns:
        Gegenstand (entweder "Schluessel", "Schalter", "Bombe", "Feuerloescher", "Akku", "Schraube", "Kontaktplatte", "Oelfleck", "Portal", "Strom", "Feuer", "Aufzug")
      • istVorne

        public boolean istVorne​(String name)
        Liefert genau dann true, wenn auf der Kachel, auf der sich der aufgerufene Figur 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 Figur auf einem Gegenstand steht, sonst false
      • gibGegenstandVorFigur

        protected Gegenstand gibGegenstandVorFigur​(String name)
        Gibt den Gegenstand zurueck, auf dem sich ein Figur befindet
        Returns:
        Gegenstand (entweder "Schluessel", "Schalter", "Bombe", "Feuerloescher", "Akku", "Schraube", "Kontaktplatte", "Oelfleck", "Portal", "Strom", "Feuer", "Aufzug")
      • istVorneFrei

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

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

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

        protected void zeichneImage()
        Eine private Methode, die dafuer sorgt, dass der "Aufdruck" auf dem Figur (Anzahl der Gegenstaende), der Akkustandsbalken und der Richtungspfeil aktualisiert werden
        Overrides:
        zeichneImage in class MyActor
      • setLocation

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

        public void setRotation​(int x)
        setRotation(x) fuer Figur 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)