java.lang.Object | +--algds.c2002.Hamster | +--algds.c2002.Hamster2
Basisklasse fuer alle Hamster, die sich im erweiterten Labyrinth (mit Hoehenstufen) bewegen sollen.
Aenderungen:
07.07.2001: Erste Anpassung an die Umgebung 2002.
12.12.2001: Trennung Hamster und Hamster2.
03.02.2002: Parameter von getHeightDifference() entfernt.
16.02.2002: Das Verhalten von lookForward() stimmte nicht mit dem
gewuenschten, dokumentierten Verhalten ueberein.
Wer Fragen hat, stelle die bitte an Christian.
Zurueck zur Wettbewerbsseite.
Version vom 10.01.2002
Constants
Fields inherited from class algds.c2002.Hamster |
engine, hse |
Fields inherited from interface algds.c2002.Constants |
CLIFFDOWN, CLIFFUP, CORN, CORNCARRY_MAX, CORNFIELD_MAX, CORNMASK, INFINITE_LOOP, MAZELENGTH_MAX, POINTS_COLLISION, POINTS_CORN, POINTS_CRASH, POINTS_LOWERBOUND, POINTS_NOTHOME, POINTS_STEP, SLOPEDOWN, SLOPEUP, TOTAL_RUNTIME, TURN_LEFT, TURN_RIGHT, WALL, WALLMASK |
Constructor Summary | |
Hamster2()
Konstruktor zum Erzeugen eines Hamster2-Objektes. |
Method Summary | |
int |
dropForward(int anzahl)
Wenn in Blickrichtung eine absteigende Klippe ist (ohne Wand), dann legt er die angegebene Anzahl von Koernern auf dem Nachbarfeld ab, ansonsten legt er nichts ab. |
boolean |
forward()
Bewegt den Hamster um einen Schritt in der aktuellen Richtung vorwaerts. |
int |
getHeightDifference()
Liefert die Hoehendifferenz zum Nachbarfeld. |
int |
lookForward()
Liefert Informationen ueber das in Blickrichtung angrenzende Feld. |
Methods inherited from class algds.c2002.Hamster |
atHome, dropHere, getAvailableCorn, getCarriedCorn, getCollisions, getHamsterAuthor, getHamsterDate, getHamsterVersion, getPoints, getSteps, isEngineAlive, log, logln, lookHere, run, setEngine, take, turn, verbose |
Methods inherited from class java.lang.Object |
|
Constructor Detail |
public Hamster2()
Hamster.run()
geschehen,
denn die Hamsterbefehle funktionieren nicht,
bevor run() aufgerufen wird.Method Detail |
public int dropForward(int anzahl)
((lookForward() & WALLMASK) == CLIFFDOWN)
den Wert true haben.
CORNFIELD_MAX
Koernern.anzahl
- die Anzahl der abzulegenden KoernerConstants.CORNFIELD_MAX
,
Constants.CLIFFDOWN
,
lookForward()
public boolean forward()
Bei einer Kollision mit einer Wand (Constants.WALL
)
oder einer aufsteigenden Klippe (Constants.CLIFFUP
)
wird der Hamster einmal nach links gedreht und bleibt auf
dem Feld.
Der Abschnitt ueber die Zeitbegrenzung aus der Beschreibung
von Hamster.forward()
gilt auch hier.
forward
in class Hamster
true
, wenn Schritt ausgefuehrt werden konnte,
sonst false
(Kollision).public int getHeightDifference()
03.02.2002: Dass der Hamster die Richtung angeben konnte, in die er blicken soll, war nicht beabsichtigt und der Parameter wurde entfernt. (Der Hamster weiss sowieso nicht, welche Richtungswerte er angeben sollte.)
public int lookForward()
Es kann sein, dass in zukuenftigen Versionen noch weitere Informationen zurueckgegeben werden, daher sollte man keinesfalls die Werte direkt vergleichen, sondern stets bitweise.
lookForward
in class Hamster
Constants.CORN
,
Constants.WALL
,
Constants.CLIFFDOWN
,
Constants.CLIFFUP
,
Constants.SLOPEDOWN
,
Constants.SLOPEUP