Class Figur


  • public class Figur
    extends MyActor
    Diese Klasse ist die Oberklasse fuer die Figuren "Bauer", "Huhn" und "Schaf". 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.
    Version:
    11.10.2023
    Author:
    T. Schaller
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected int durst
      gibt an, wie durstig die Figur ist (0 = verdurstet, 100 = kein Durst)
      protected int hunger
      gibt an, wie hungrig die Figur ist (0 = verhungert, 100 = satt)
      boolean istHauptperson
      gibt an, ob die Figur Hauptperson ist und nur durch den Benutzer gesteuert wird.
      protected int kostenBewegung
      gibt an, wie viel Lebensenergie (Hunger+Durst) die Figur bei einer Bewegung verliert.
      protected int kostenWarten
      gibt an, wie viel Lebensenergie (Hunger+Durst) die Figur beim Warten verliert.
      • Fields inherited from class MyActor

        betretbar, bildnummer, imageNumbers, moveable, originalImages
    • Constructor Summary

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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addedToWorld​(greenfoot.World w)
      Hilfsmethode: bitte nicht aufrufen.
      void dreheLinks()
      die Figur dreht sich um 90 Grad nach links (aus der Sicht des Figurs).
      void dreheRechts()
      die Figur dreht sich um 90 Grad nach rechts (aus der Sicht des Figurs).
      void einsVor()
      die Figur geht einen Schritt in die Blickrichtung.
      void error()
      Hilfsmethode: bitte nicht aufrufen sorgt dafür, dass das Programm abstürzt, wenn die Figur nicht in der Welt und Aktionen ausführen soll
      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 Wenn dort kein Gegenstand ist, dann wird null zurückgegeben
      protected Gegenstand gibGegenstandUnterFigur​(java.lang.String name)
      Gibt den Gegenstand vom gesuchten Typ zurueck, wenn sich die Figur darauf befindet
      protected Gegenstand gibGegenstandVorFigur​(java.lang.String name)
      Gibt den Gegenstand vom gesuchten Typ zurueck, wenn sich die Figur davor befindet
      boolean istAuf​(java.lang.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()
      Die Methode ueberprueft, ob sich links der Laufrichtung eine Wand befindet.
      boolean istRechtsFrei()
      Die Methode ueberprueft, ob rechts der Laufrichtung frei ist.
      boolean istVorne​(java.lang.String name)
      Liefert genau dann true, wenn auf der Kachel vor der Figur in Blickrichtung ein Gegenstand mit dem angegebnen Namen befindet.
      boolean istVorneFrei()
      Die Methode ueberprueft, ob vor der Figur Hindernisse stehen oder nicht
      int pruefe​(java.lang.String name)
      pruefe untersucht den mit "name" bezeichneten Gegenstand Dieser muss entweder am gleichen Ort sein.
      protected void refresh()
      Hilfsmethode, bitte nicht benutzen
      void setLocation​(int x, int y)
      Hilfsmethode: bitte nicht aufrufen.
      void setRotation​(int x)
      Hilfsmethode: Bitte nicht aufrufen setRotation(x) fuer Figur wird ueberschrieben, damit nur vier Rotationsrichtungen moeglich sind!
      void verbraucheEnergie​(int verlust)
      Erhöhrt den Hunger der Figur um den angegebenen Wert.
      protected boolean verbraucheEnergie​(int hunger, int durst)
      Erhöhrt den Hunger und Durst der Figur um den angegebenen Wert.
      void warte()
      Die Figur wartet und macht nichts.
      protected int xVor()
      Gibt die x-Koordinate zurück, wenn der Figur einen Schritt nach vorne macht.
      protected int yVor()
      Gibt die y-Koordinate zurück, wenn die Figur einen Schritt nach vorne macht.
      protected void zeichneEnergie()
      Hilfsmethode: Zeichne / Aktualisiere die hunger (Akkustandsbalken), die die Figur hat Bitte nicht aufrufen
      protected void zeichneImage()
      Hilfsmethode, die dafuer sorgt, dass der "Aufdruck" auf der Figur (Anzahl der Gegenstaende), der Akkustandsbalken und der Richtungspfeil aktualisiert werden Bitte nicht aufrufen.
      • Methods inherited from class MyActor

        getBild, getName, getX, getY, istBetretbar, istBeweglich, melde, setzeBild, warne
      • 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
      • Methods inherited from class java.lang.Object

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

      • hunger

        protected int hunger
        gibt an, wie hungrig die Figur ist (0 = verhungert, 100 = satt)
      • durst

        protected int durst
        gibt an, wie durstig die Figur ist (0 = verdurstet, 100 = kein Durst)
      • kostenBewegung

        protected int kostenBewegung
        gibt an, wie viel Lebensenergie (Hunger+Durst) die Figur bei einer Bewegung verliert.
      • kostenWarten

        protected int kostenWarten
        gibt an, wie viel Lebensenergie (Hunger+Durst) die Figur beim Warten verliert.
      • istHauptperson

        public boolean istHauptperson
        gibt an, ob die Figur Hauptperson ist und nur durch den Benutzer gesteuert wird. andere Figuren agieren bei jeder Aktion der Hauptfigur (z.B. das Gras wächst)
    • Constructor Detail

      • Figur

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

      • error

        public void error()
        Hilfsmethode: bitte nicht aufrufen sorgt dafür, dass das Programm abstürzt, wenn die Figur nicht in der Welt und Aktionen ausführen soll
      • 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 der Figur um den angegebenen Wert.
        Parameters:
        verlust - Anzahl der verbrauchten Energiepunkte
      • verbraucheEnergie

        protected boolean verbraucheEnergie​(int hunger,
                                            int durst)
        Erhöhrt den Hunger und Durst der Figur um den angegebenen Wert.
        Parameters:
        hunger - Anzahl der verbrauchten Energiepunkte (Hunger)
        durst - Anzahl der verbrauchten Energiepunkte (Durst)
        Returns:
        gibt zurück, ob es möglich war, so viele Punkte abzuziehen
      • xVor

        protected int xVor()
        Gibt die x-Koordinate zurück, wenn der Figur einen Schritt nach vorne macht.
        Returns:
        x-Koordinate
      • yVor

        protected int yVor()
        Gibt die y-Koordinate zurück, wenn die Figur einen Schritt nach vorne macht.
        Returns:
        y-Koordinate
      • einsVor

        public void einsVor()
        die Figur geht einen Schritt in die Blickrichtung. Das macht er nur, wenn vor ihm nicht im Weg ist.
      • dreheRechts

        public void dreheRechts()
        die Figur dreht sich um 90 Grad nach rechts (aus der Sicht des Figurs).
      • dreheLinks

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

        public void warte()
        Die Figur wartet und macht nichts. In der Zeit kann aber z.B. das Gras wachsen.
      • refresh

        protected void refresh()
        Hilfsmethode, bitte nicht benutzen
      • pruefe

        public int pruefe​(java.lang.String name)
        pruefe untersucht den mit "name" bezeichneten Gegenstand Dieser muss entweder am gleichen Ort sein.
        Parameters:
        name - Bezeichnung des Gegenstands: "Gras", "Korn","Tomate", "Giesskanne" oder "Blume"
        Returns:
        Wert zwischen 0-100 oder -1, je nach Zustand des Gegenstands
      • 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 die Figur auf einem Gegenstand steht, sonst false
      • istAuf

        public boolean istAuf​(java.lang.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 ("Gras","Nest","Ei","Koerner","Acker","Korn","Tomate", "Giesskanne", "Blume", "Sense")
        Returns:
        true, wenn die Figur auf einem Gegenstand steht, sonst false
      • gibGegenstandUnterFigur

        protected Gegenstand gibGegenstandUnterFigur()
        Gibt den Gegenstand zurueck, auf dem sich ein Figur befindet Wenn dort kein Gegenstand ist, dann wird null zurückgegeben
        Returns:
        Gegenstand (Objekt vom Typ "Gras","Nest","Ei","Koerner","Acker","Korn","Tomate", "Giesskanne", "Blume" oder "Sense")
      • gibGegenstandUnterFigur

        protected Gegenstand gibGegenstandUnterFigur​(java.lang.String name)
        Gibt den Gegenstand vom gesuchten Typ zurueck, wenn sich die Figur darauf befindet
        Parameters:
        name - Bezeichnung des Gegenstandes ("Gras","Nest","Ei","Koerner","Acker","Korn","Tomate", "Giesskanne", "Blume", "Sense")
        Returns:
        Gegenstand
      • istVorne

        public boolean istVorne​(java.lang.String name)
        Liefert genau dann true, wenn auf der Kachel vor der Figur in Blickrichtung ein Gegenstand mit dem angegebnen Namen befindet.
        Parameters:
        name - Einer der Gegenstaende ("Gras","Zaun","Wasser","Nest","Ei","Koerner","Acker","Korn","Stall","Tomate", "Giesskanne","Bauernhof", "Blume", "Sense")
        Returns:
        true, wenn die Figur vor diesem Gegenstand steht, sonst false
      • gibGegenstandVorFigur

        protected Gegenstand gibGegenstandVorFigur​(java.lang.String name)
        Gibt den Gegenstand vom gesuchten Typ zurueck, wenn sich die Figur davor befindet
        Parameters:
        name - Bezeichnung des Gegenstandes ("Gras","Nest","Ei","Koerner","Acker","Korn","Tomate", "Giesskanne", "Blume", "Sense")
        Returns:
        Gegenstand
      • istVorneFrei

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

        public boolean istRechtsFrei()
        Die Methode ueberprueft, ob rechts der Laufrichtung frei ist.
        Returns:
        true, wenn das Feld rechts betreten werden kann, sonst false
      • istLinksFrei

        public boolean istLinksFrei()
        Die Methode ueberprueft, ob sich links der Laufrichtung eine Wand befindet.
        Returns:
        true, wenn das Feld links betreten werden kann, sonst false
      • zeichneImage

        protected void zeichneImage()
        Hilfsmethode, die dafuer sorgt, dass der "Aufdruck" auf der Figur (Anzahl der Gegenstaende), der Akkustandsbalken und der Richtungspfeil aktualisiert werden Bitte nicht aufrufen.
        Overrides:
        zeichneImage in class MyActor
      • zeichneEnergie

        protected void zeichneEnergie()
        Hilfsmethode: Zeichne / Aktualisiere die hunger (Akkustandsbalken), die die Figur hat Bitte nicht aufrufen
      • setLocation

        public void setLocation​(int x,
                                int y)
        Hilfsmethode: bitte nicht aufrufen. 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)
        Hilfsmethode: Bitte nicht aufrufen 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)
      • addedToWorld

        public void addedToWorld​(greenfoot.World w)
        Hilfsmethode: bitte nicht aufrufen.
        Overrides:
        addedToWorld in class MyActor
        Parameters:
        w - Die Welt in die ein Figur gesetzt wurde