WiSe Herdenmanagement
Version: 2006-03-14

herdenmanagement
Class Rindvieh

java.lang.Object
  extended by herdenmanagement.PositionsElement
      extended by herdenmanagement.Rindvieh
Direct Known Subclasses:
KreisendesRindvieh, TanzRind

public class Rindvieh
extends PositionsElement

Die Klasse Rindvieh stellt eine Kuh dar, die sich auch auf einem Acker bewegen kann. Sie beherrscht Richtungswechel sowie das Vorwärts- und das Rückwärtslaufen. Wenn auf dem Acker ein Eimer steht, kann sie dort mit gibMilch() gemolken werden. Befindet sich Gras unter ihr kann sie es fressen mit frissGras() und Milch draus machen oder rauchen zum Spass.

Eine Kuh wird mit Kuh kuh = new Kuh("Name der Kuh") erzeugt und anschließend mit acker.lassRindWeiden(kuh) auf die Weide gestellt.

Version:
$Revision: 1.9 $
Author:
Steffen Greiffenberg, Andreas Gehlert, Robert Braun
See Also:
Acker, Gras, Eimer

Field Summary
protected  javax.swing.ImageIcon[] bilder
          Ein Rindvieh bekommt, abhängig von seiner derzeitigen Richtung, ein Bild zugeordnet.
protected  javax.swing.ImageIcon KUH_GRAS
          Dateinname des Bildes eines Rindviehs das Gras frisst
protected  javax.swing.ImageIcon KUH_GRAS_TANZ
          Dateinname des Bildes eines tanzenden Rindviehs das Gras frisst
protected  javax.swing.ImageIcon KUH_GRAS_UEBERWACHEND
          Dateinname des Bildes eines überwachenden Rindviehs das Gras frisst
protected  javax.swing.ImageIcon KUH_HINTEN
          Dateinname des Bildes eines Rindviehs von hinten
protected  javax.swing.ImageIcon KUH_LINKS
          Dateinname des Bildes eines Rindviehs von links
protected  javax.swing.ImageIcon KUH_MILCH
          Dateinname des Bildes eines Rindviehs das Milch gegeben hat.
protected  javax.swing.ImageIcon KUH_MILCH_TANZ
          Dateinname des Bildes eines tanzenden Rindviehs das Milch gegeben hat.
protected  javax.swing.ImageIcon KUH_MILCH_UEBERWACHEND
          Dateinname des Bildes eines kreisenden Rindviehs das Milch gegeben hat.
protected  javax.swing.ImageIcon KUH_RAUCH
          Dateinname des Bildes eines Rindviehs das Gras raucht
protected  javax.swing.ImageIcon KUH_RAUCH_TANZ
          Dateinname des Bildes eines tanzenden Rindviehs das Gras raucht
protected  javax.swing.ImageIcon KUH_RAUCH_UEBERWACHEND
          Dateinname des Bildes eines überwachenden Rindviehs das Gras raucht
protected  javax.swing.ImageIcon KUH_RECHTS
          Dateinname des Bildes eines Rindviehs von rechts
protected  javax.swing.ImageIcon KUH_VORN
          Dateinname des Bildes eines Rindviehs von vorn
protected  int milchImEuter
          Milch im Euter
protected  java.lang.String name
          Name des Rindviehs
protected  int richtung
          Richtung, in die als nächstes gelaufen wird.
protected  int RICHTUNG_NORD
          Konstante, die die Richtung Norden anzeigt.
protected  int RICHTUNG_OST
          Konstante, die die Richtung Osten anzeigt.
protected  int RICHTUNG_SUED
          Konstante, die die Richtung Süden anzeigt.
protected  int RICHTUNG_WEST
          Konstante, die die Richtung Westen anzeigt.
 
Fields inherited from class herdenmanagement.PositionsElement
acker, xPosition, yPosition
 
Constructor Summary
Rindvieh(java.lang.String name)
          Constructor merkt sich den Namen.
 
Method Summary
protected  void aktualisiereAcker()
          Setzt entsprechend der Blickrichtung der Kuh das Bild und beauftragt den Acker, sich neu zu zeichnen.
 void dreheDichLinksRum()
          Dreht das Rind nach links.
 void dreheDichRechtsRum()
          Dreht das Rind nach rechts.
 void frissGras()
          Gras fressen führt zur Vermehrung der Milch im Euter.
protected  void gehe(boolean vor)
          Bewegt ja nach Richtung und je nachdem ob vor=true, vor oder zurück.
 void geheVor()
          Bewegt das Vieh je nach Richtung vor.
 void geheZurueck()
          Bewegt das Vieh je nach Richtung zurueck.
 boolean gehtsDaWeiter()
          Die Methode existiert nur noch aus Kompatibilitätsgründen.
protected  boolean gehtsDaWeiter(boolean vor)
          Liefert true, falls sich das Rindvieh eine Position weiter nach vorn (vor=true) bzw. nach hinten (vor=false) bewegen kann.
 boolean gehtsDaWeiterVor()
          Prüft, ob das Rindvieh eine Position nach vorn gehen kann.
 boolean gehtsDaWeiterZurueck()
          Prüft, ob das Rindvieh eine Position zurueck gehen kann.
 java.lang.String getName()
          Liefert den Namen des Rindviehs zurück.
 int gibMilch()
          Wenn die Kuh Gras gefressen hat, kann sie auch Milch geben.
protected  java.awt.Dimension gibNaechstePosition(boolean vor)
          Liefert die Position des Rindviehs bei einem Schritt nach vorn (vor=true) bzw. nach hinten (vor=false), ohne jedoch den Schritt selbst auszuführen.
 boolean istMilchImEuter()
          Prueft, ob Milch im Euter ist.
 void raucheGras()
          Gras rauchen bringt nix, macht aber Spass.
protected  void setzeBild()
          Definiert das korrekte Bild je nach Richtung, in der das Rindvieh guckt.
protected  void warte()
          Macht 700ms nix.
protected  void warte(int zeit)
          Macht zeit ms nix.
protected  void warteLange()
          Ruft dreimal warte() auf.
 
Methods inherited from class herdenmanagement.PositionsElement
gibXPosition, gibYPosition, ladeBild, ladeBild, paint, setzeAcker
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

RICHTUNG_NORD

protected final int RICHTUNG_NORD
Konstante, die die Richtung Norden anzeigt.

See Also:
richtung, Constant Field Values

RICHTUNG_OST

protected final int RICHTUNG_OST
Konstante, die die Richtung Osten anzeigt.

See Also:
richtung, Constant Field Values

RICHTUNG_SUED

protected final int RICHTUNG_SUED
Konstante, die die Richtung Süden anzeigt.

See Also:
richtung, Constant Field Values

RICHTUNG_WEST

protected final int RICHTUNG_WEST
Konstante, die die Richtung Westen anzeigt.

See Also:
richtung, Constant Field Values

richtung

protected int richtung
Richtung, in die als nächstes gelaufen wird.

See Also:
RICHTUNG_NORD, RICHTUNG_OST, RICHTUNG_SUED, RICHTUNG_WEST

name

protected java.lang.String name
Name des Rindviehs


milchImEuter

protected int milchImEuter
Milch im Euter


bilder

protected javax.swing.ImageIcon[] bilder
Ein Rindvieh bekommt, abhängig von seiner derzeitigen Richtung, ein Bild zugeordnet. Die Dateinamen der Bilder werden in dem Feld abgelegt.


KUH_HINTEN

protected final javax.swing.ImageIcon KUH_HINTEN
Dateinname des Bildes eines Rindviehs von hinten

See Also:
bilder

KUH_RECHTS

protected final javax.swing.ImageIcon KUH_RECHTS
Dateinname des Bildes eines Rindviehs von rechts

See Also:
bilder

KUH_VORN

protected final javax.swing.ImageIcon KUH_VORN
Dateinname des Bildes eines Rindviehs von vorn

See Also:
bilder

KUH_LINKS

protected final javax.swing.ImageIcon KUH_LINKS
Dateinname des Bildes eines Rindviehs von links

See Also:
bilder

KUH_MILCH

protected final javax.swing.ImageIcon KUH_MILCH
Dateinname des Bildes eines Rindviehs das Milch gegeben hat. Es entspricht dem Bild eines Rindviehs von vorn.

See Also:
bilder

KUH_GRAS

protected final javax.swing.ImageIcon KUH_GRAS
Dateinname des Bildes eines Rindviehs das Gras frisst

See Also:
bilder

KUH_RAUCH

protected final javax.swing.ImageIcon KUH_RAUCH
Dateinname des Bildes eines Rindviehs das Gras raucht

See Also:
bilder

KUH_GRAS_UEBERWACHEND

protected final javax.swing.ImageIcon KUH_GRAS_UEBERWACHEND
Dateinname des Bildes eines überwachenden Rindviehs das Gras frisst

See Also:
KreisendesRindvieh, bilder

KUH_RAUCH_UEBERWACHEND

protected final javax.swing.ImageIcon KUH_RAUCH_UEBERWACHEND
Dateinname des Bildes eines überwachenden Rindviehs das Gras raucht

See Also:
KreisendesRindvieh, bilder

KUH_GRAS_TANZ

protected final javax.swing.ImageIcon KUH_GRAS_TANZ
Dateinname des Bildes eines tanzenden Rindviehs das Gras frisst

See Also:
TanzRind, bilder

KUH_RAUCH_TANZ

protected final javax.swing.ImageIcon KUH_RAUCH_TANZ
Dateinname des Bildes eines tanzenden Rindviehs das Gras raucht

See Also:
TanzRind, bilder

KUH_MILCH_TANZ

protected final javax.swing.ImageIcon KUH_MILCH_TANZ
Dateinname des Bildes eines tanzenden Rindviehs das Milch gegeben hat. Es entspricht dem Bild eines tanzenden Rindviehs von vorn.

See Also:
bilder

KUH_MILCH_UEBERWACHEND

protected final javax.swing.ImageIcon KUH_MILCH_UEBERWACHEND
Dateinname des Bildes eines kreisenden Rindviehs das Milch gegeben hat. Es entspricht dem Bild eines kreisenden Rindviehs von vorn.

See Also:
bilder
Constructor Detail

Rindvieh

public Rindvieh(java.lang.String name)
Constructor merkt sich den Namen. Zusätzlich werden die vier Bilder des Rindviehs (Bild von rechts, links, vorn und hinten) eingeladen und im Feld bilder abgelegt.

Parameters:
name - der Name des Rindviehs
See Also:
bilder
Method Detail

gibNaechstePosition

protected java.awt.Dimension gibNaechstePosition(boolean vor)
Liefert die Position des Rindviehs bei einem Schritt nach vorn (vor=true) bzw. nach hinten (vor=false), ohne jedoch den Schritt selbst auszuführen.
Diese Methode wird von der Methode gehtsDaWeiter(boolean) und gehe(boolean) aufgerufen, um das nächste Feld zu ermitteln.

Parameters:
vor - true, dann wird das nächste Feld vorwärts ermittelt; false, dann wird das nächste Feld bei einem Schritt nach hinten bestimmt.
Returns:
Koordianten des Rindviehs nach dem Schritt.

gehe

protected void gehe(boolean vor)
Bewegt ja nach Richtung und je nachdem ob vor=true, vor oder zurück.
Der Acker wird dabei noch nicht aktualisiert. Bitte nutzen Sie die Methoden geheVor() und geheZurueck() um das Rindvieh zu bewegen.

Parameters:
vor - Das Rindvieh soll sich vorwärts bewegen, falls vor=true, sonst zurück.
See Also:
geheVor(), geheZurueck()

geheVor

public void geheVor()
Bewegt das Vieh je nach Richtung vor.


geheZurueck

public void geheZurueck()
Bewegt das Vieh je nach Richtung zurueck. Die Annahme, dass eine Kuh rückwärts laufen kann, hatte ich eigentlich verworfen - aber zum Tanzen von Kühen reaktiviert.


dreheDichLinksRum

public void dreheDichLinksRum()
Dreht das Rind nach links. Verringert den Wert in richtung um 1 (natürlich mit Unterlaufprüfung).


dreheDichRechtsRum

public void dreheDichRechtsRum()
Dreht das Rind nach rechts. Erhöht den Wert in richtung um 1 (natürlich mit Überlaufprüfung).


raucheGras

public void raucheGras()
Gras rauchen bringt nix, macht aber Spass.


frissGras

public void frissGras()
Gras fressen führt zur Vermehrung der Milch im Euter.


gibMilch

public int gibMilch()
Wenn die Kuh Gras gefressen hat, kann sie auch Milch geben. Das passiert mit dieser Methode. Der Wert in milchImEuter wird auf Null gesetzt und als Ergebnis zurückgegeben. Wenn keine Milch oder kein Eimer bereitsteht, gibt's eine Fehlermeldung.

Returns:
der Wert aus milchImEuter

istMilchImEuter

public boolean istMilchImEuter()
Prueft, ob Milch im Euter ist.

Returns:
milchImEuter > 0

getName

public java.lang.String getName()
Liefert den Namen des Rindviehs zurück.

Returns:
Name des Rindviehs, der Inhalt von name

aktualisiereAcker

protected void aktualisiereAcker()
Setzt entsprechend der Blickrichtung der Kuh das Bild und beauftragt den Acker, sich neu zu zeichnen.


warte

protected void warte(int zeit)
Macht zeit ms nix.

Parameters:
zeit - Wartezeit in Millisekunden (ms)

warte

protected void warte()
Macht 700ms nix.
Die Methode wird eingeführt, damit jede Subklasse von Rindvieh durch Überschreiben selbst bestimmen kann, wie lange die Wartezeit für einen Schritt beträgt.


warteLange

protected void warteLange()
Ruft dreimal warte() auf.

See Also:
warte()

gehtsDaWeiter

protected boolean gehtsDaWeiter(boolean vor)
Liefert true, falls sich das Rindvieh eine Position weiter nach vorn (vor=true) bzw. nach hinten (vor=false) bewegen kann.

Parameters:
vor - Betrachtete Bewegungsrichtung.
Returns:
true: Rindvieh kann sich in die gewünschte Richtung bewegen, sonst false

gehtsDaWeiterVor

public boolean gehtsDaWeiterVor()
Prüft, ob das Rindvieh eine Position nach vorn gehen kann. Die Methode ruft gehtsDaWeiter(true) auf.

Returns:
true: Das Rindvieh kann einen Schritt nach vorn gehen, sonst false.

gehtsDaWeiter

public boolean gehtsDaWeiter()
Die Methode existiert nur noch aus Kompatibilitätsgründen. Sie ruft einfach gehtsDaWeiterVor() auf.

Returns:
#gehtsDaWeiterVor()
See Also:
gehtsDaWeiterVor()

gehtsDaWeiterZurueck

public boolean gehtsDaWeiterZurueck()
Prüft, ob das Rindvieh eine Position zurueck gehen kann. Die Methode ruft gehtsDaWeiter(false) auf.

Returns:
true: Das Rindvieh kann einen Schritt nach hinten gehen, sonst false.

setzeBild

protected void setzeBild()
Definiert das korrekte Bild je nach Richtung, in der das Rindvieh guckt. Dazu werden die Dateinamen aus dem Feld bilder verwendet.

See Also:
bilder

WiSe Herdenmanagement
Version: 2006-03-14

Letzte Änderung am 17. März 2006 um 10:05 Uhr
Robert Braun, generiert durch javadoc