Class AllroundHamster

java.lang.Object
  extended by Hamster
      extended by AllroundHamster
Direct Known Subclasses:
SpielHamster

public class AllroundHamster
extends Hamster

Die Klasse erweitert den Befehlssatz eines normalen Hamsters um viele nuetzliche Befehle.

Version:
1.0 (25.01.2006)
Author:
Dietrich Boles (Universitaet Oldenburg)

Nested Class Summary
 
Nested classes/interfaces inherited from class Hamster
Hamster.ArrayListIntern, Hamster.SimulationModelIntern
 
Field Summary
 
Fields inherited from class Hamster
_intern_hamsters, _intern_logPanel, _intern_simulationModel, NORD, OST, SUED, WEST
 
Constructor Summary
AllroundHamster()
          Konstruktor zum Erzeugen eines nicht initialisierten AllroundHamsters
AllroundHamster(Hamster existierenderHamster)
          initialisiert einen neuen AllroundHamster mit den Attributwerten eines bereits existierenden Hamsters
AllroundHamster(int reihe, int spalte, int blickrichtung, int anzahlKoerner)
          initialisiert einen neuen AllroundHamster mit den uebergebenen Werten
AllroundHamster(int reihe, int spalte, int blickrichtung, int anzahlKoerner, String territoriumsDatei)
          laedt ein vordefiniertes Territorium und erzeugt und initialisiert darin einen neuen AllroundHamster mit den uebergebenen Werten
AllroundHamster(String territoriumsDatei)
          laedt ein vordefiniertes Territorium und initialisiert einen neuen AllroundHamster mit den Attributwerten des Standard-Hamsters
 
Method Summary
 int gib(int anzahl)
          der Hamster legt "anzahl" Koerner ab, maximal jedoch so viele, wie er im Maul hat; geliefert wird die tatsaechliche Anzahl abgelegter Koerner
 int gibAlle()
          der Hamster legt alle Koerner, die er im Maul hat, auf der aktuellen Kachel ab; geliefert wird die Anzahl abgelegter Koerner
 boolean hintenFrei()
          der Hamster testet, ob hinter ihm die Kachel frei ist
 void kehrt()
          der Hamster dreht sich um 180 Grad
 void laufeZuKachel(int reihe, int spalte)
          der Hamster laeuft zur Kachel (reihe/spalte); Voraussetzung: die Kachel existiert und es befinden sich keine Mauern im Territorium bzw. auf dem gewaehlten Weg
 void laufeZuReihe(int reihe)
          der Hamster laeuft in der Spalte, in der er gerade steht, zur angegebenen Reihe; Voraussetzung: die Reihe existiert und es befinden sich keine Mauern im Territorium bzw. auf dem gewaehlten Weg
 int laufeZurWand()
          der Hamster laeuft bis zur naechsten Mauer; geliefert wird die Anzahl ausgefuehrter Schritte
 void laufeZuSpalte(int spalte)
          der Hamster laeuft in der Reihe, in der er gerade steht, zur angegebenen Spalte; Voraussetzung: die Spalte existiert und es befinden sich keine Mauern im Territorium bzw. auf dem gewaehlten Weg
 boolean linksFrei()
          der Hamster testet, ob links von ihm die Kachel frei ist
 int nimm(int anzahl)
          der Hamster frisst "anzahl" Koerner, maximal jedoch so viele, wie auf der aktuellen Kachel liegen; geliefert wird die tatsaechliche Anzahl gefressener Koerner
 int nimmAlle()
          der Hamster frisst alle Koerner auf der aktuellen Kachel; geliefert wird die Anzahl gefressener Koerner
 boolean rechtsFrei()
          der Hamster testet, ob rechts von ihm die Kachel frei ist
 void rechtsUm()
          der Hamster dreht sich um 90 Grad nach nach rechts
 void setzeBlickrichtung(int richtung)
          der Hamster dreht sich so lange um, bis er in die uebergebene Blickrichtung schaut
 int vor(int anzahl)
          der Hamster laeuft "anzahl" Schritte, maximal jedoch bis zur naechsten Mauer; geliefert wird die tatsaechliche Anzahl gelaufener Schritte
 
Methods inherited from class Hamster
clone, equals, getAnzahlHamster, getAnzahlKoerner, getBlickrichtung, getReihe, getSpalte, getStandardHamster, gib, init, kornDa, liesZahl, liesZeichenkette, linksUm, loeschen, maulLeer, nimm, schreib, toString, vor, vornFrei
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AllroundHamster

public AllroundHamster()
Konstruktor zum Erzeugen eines nicht initialisierten AllroundHamsters


AllroundHamster

public AllroundHamster(Hamster existierenderHamster)
initialisiert einen neuen AllroundHamster mit den Attributwerten eines bereits existierenden Hamsters

Parameters:
existierenderHamster - existierender Hamster

AllroundHamster

public AllroundHamster(int reihe,
                       int spalte,
                       int blickrichtung,
                       int anzahlKoerner)
initialisiert einen neuen AllroundHamster mit den uebergebenen Werten

Parameters:
reihe - Reihe der Kachel
spalte - Spalte der Kachel
blickrichtung - Blickrichtung des Hamsters
anzahlKoerner - Anzahl an Koernern im Maul des Hamsters

AllroundHamster

public AllroundHamster(int reihe,
                       int spalte,
                       int blickrichtung,
                       int anzahlKoerner,
                       String territoriumsDatei)
laedt ein vordefiniertes Territorium und erzeugt und initialisiert darin einen neuen AllroundHamster mit den uebergebenen Werten

Parameters:
reihe - Reihe der Kachel
spalte - Spalte der Kachel
blickrichtung - Blickrichtung des Hamsters
anzahlKoerner - Anzahl an Koernern im Maul des Hamsters
territoriumsDatei - Name einer Datei mit einem zu ladenden Territorium

AllroundHamster

public AllroundHamster(String territoriumsDatei)
laedt ein vordefiniertes Territorium und initialisiert einen neuen AllroundHamster mit den Attributwerten des Standard-Hamsters

Parameters:
territoriumsDatei - Name einer Datei mit einem zu ladenden Territorium
Method Detail

gib

public int gib(int anzahl)
der Hamster legt "anzahl" Koerner ab, maximal jedoch so viele, wie er im Maul hat; geliefert wird die tatsaechliche Anzahl abgelegter Koerner

Parameters:
anzahl - maximale Anzahl an abzulegenden Koernern
Returns:
die tatsaechliche Anzahl abgelegter Koerner

gibAlle

public int gibAlle()
der Hamster legt alle Koerner, die er im Maul hat, auf der aktuellen Kachel ab; geliefert wird die Anzahl abgelegter Koerner

Returns:
Anzahl abgelegter Koerner

hintenFrei

public boolean hintenFrei()
der Hamster testet, ob hinter ihm die Kachel frei ist

Returns:
true, falls die Kachel hinter dem Hamster frei ist; sonst false

kehrt

public void kehrt()
der Hamster dreht sich um 180 Grad


laufeZuKachel

public void laufeZuKachel(int reihe,
                          int spalte)
der Hamster laeuft zur Kachel (reihe/spalte); Voraussetzung: die Kachel existiert und es befinden sich keine Mauern im Territorium bzw. auf dem gewaehlten Weg

Parameters:
reihe - die Reihe, zu der der Hamster laufen soll
spalte - die Spalte, zu der der Hamster laufen soll

laufeZuReihe

public void laufeZuReihe(int reihe)
der Hamster laeuft in der Spalte, in der er gerade steht, zur angegebenen Reihe; Voraussetzung: die Reihe existiert und es befinden sich keine Mauern im Territorium bzw. auf dem gewaehlten Weg

Parameters:
reihe - die Reihe, zu der der Hamster laufen soll

laufeZurWand

public int laufeZurWand()
der Hamster laeuft bis zur naechsten Mauer; geliefert wird die Anzahl ausgefuehrter Schritte

Returns:
Anzahl ausgefuehrter Schritte

laufeZuSpalte

public void laufeZuSpalte(int spalte)
der Hamster laeuft in der Reihe, in der er gerade steht, zur angegebenen Spalte; Voraussetzung: die Spalte existiert und es befinden sich keine Mauern im Territorium bzw. auf dem gewaehlten Weg

Parameters:
spalte - die Spalte, zu der der Hamster laufen soll

linksFrei

public boolean linksFrei()
der Hamster testet, ob links von ihm die Kachel frei ist

Returns:
true, falls die Kachel links von dem Hamster frei ist; sonst false

nimm

public int nimm(int anzahl)
der Hamster frisst "anzahl" Koerner, maximal jedoch so viele, wie auf der aktuellen Kachel liegen; geliefert wird die tatsaechliche Anzahl gefressener Koerner

Parameters:
anzahl - maximale Anzahl an zu fressenden Koernern
Returns:
die tatsaechliche Anzahl gefressener Koerner

nimmAlle

public int nimmAlle()
der Hamster frisst alle Koerner auf der aktuellen Kachel; geliefert wird die Anzahl gefressener Koerner

Returns:
Anzahl gefressener Koerner

rechtsFrei

public boolean rechtsFrei()
der Hamster testet, ob rechts von ihm die Kachel frei ist

Returns:
true, falls die Kachel rechts von dem Hamster frei ist; sonst false

rechtsUm

public void rechtsUm()
der Hamster dreht sich um 90 Grad nach nach rechts


setzeBlickrichtung

public void setzeBlickrichtung(int richtung)
der Hamster dreht sich so lange um, bis er in die uebergebene Blickrichtung schaut

Parameters:
richtung - die Richtung, in die der Hamster schauen soll

vor

public int vor(int anzahl)
der Hamster laeuft "anzahl" Schritte, maximal jedoch bis zur naechsten Mauer; geliefert wird die tatsaechliche Anzahl gelaufener Schritte

Parameters:
anzahl - maximale Anzahl an zu laufenden Schritten
Returns:
die tatsaechliche Anzahl gelaufener Schritte