Class Roboter
- java.lang.Object
-
- greenfoot.Actor
-
- 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.08void
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ückboolean
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 nichtboolean
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 ausvoid
setAnzahlVonGegenstand(java.lang.String name, int anzahl)
Gibt dem Roboter eine bestimmte Anzahl von Gegenstaenden einer Artvoid
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
-
-
-
-
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 sollistWichtig
- 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 sollactor
- 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 classgreenfoot.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 classgreenfoot.Actor
- Parameters:
x
- die x-Koordinatey
- die y-Koordinate
-
setRotation
public void setRotation(int x)
setRotation(x) fuer Roboter wird ueberschrieben, damit nur vier Rotationsrichtungen moeglich sind!- Overrides:
setRotation
in classgreenfoot.Actor
- Parameters:
x
- die Richtung (0=Osten, 90=Sueden, 180=Westen, 270=Norden)
-
-