Bisher kennst du das → das Hamster-Klassenmodell. Daneben gibt es ein → allgemeines Klassenmodell, das die Erstellung eigenständiger Klassen ermöglicht.
Aufgabe:
class Zufall
{
. . .
}
int zufallsZahl(int maxZahl)
{
. . .
}
int reihePos[] = new int[11];
. . .
Zufall position = new Zufall();
willi.geheZuKachel(position.zufallsZahl(...)
while (!willi.maulLeer())
{
zaehler = zaehler + 1;
willi.geheZuKachel(position.zufallsZahl(Territorium.getAnzahlReihen()-1), . . . );
. . .
reihePos[zaehler] = willi.getReihe();
. . .
}
while (zaehler != 0)
{
paul.geheZuKachel(. . . , . . .);
zaehler = zaehler - 1;
}
class Zwillinge
{
int spalte;
int reihe;
int koerner;
Hamster junge;
Hamster maedchen;
Zwillinge(int reihe, int spalte, int blickrichtung, int koerner)
{
this.junge = new Hamster(reihe, spalte, blickrichtung, koerner);
this.maedchen = new Hamster(reihe, spalte, blickrichtung, koerner);
}
boolean kornDa()
{
return this.junge.kornDa() && this.maedchen.kornDa();
}
void vor()
{
this.junge.vor();
this.maedchen.vor();
}
int anzahlKoerner()
{
int anzahl = 0;
while (this.junge.kornDa())
{
. . . .
}
}
Zufall zahl = new Zufall(maxZahl);
Zwillinge beide = new Zwillinge(zahl.zufallsZahl(Territorium.getAnzahlReihen()-1),. . . . );
... und laufen dann solange, bis sie keine Körner mehr im Maul haben.
while(!beide.maulLeer())
{
. . . .
}
class Position
{
int reihe;
int spalte;
Position(int rWert, int sWert)
{
this.reihe = rWert;
this.spalte = sWert;
}
int getReihe()
{
return this.reihe;
}
int getSpalte()
{
return this.spalte;
}
}
class GeheZuKachelHamster
{
int reihe;
int spalte;
int blickrichtung;
// Subobjekt Hamster
Hamster hamster;
GeheZuKachelHamster(int reihe, int spalte, int blickrichtung, int koerner)
{
this.hamster = new Hamster(reihe, spalte, blickrichtung, koerner);
}
. . .
}
void geheZuKachel(int reihe, int spalte)
{
if (reihe >this.hamster.getReihe())
{
this.setzeBlickRichtung(Hamster.SUED);
}
. . .
}
Zufall zahl = new Zufall(maxZahl);
Position posEnde = new Position(zahl.zufallsZahl(Territorium.getAnzahlReihen()-1),zahl.zufallsZahl(Territorium.getAnzahlSpalten()-1));
int anzahlHamster = 8;
GeheZuKachelHamster[] familie = new GeheZuKachelHamster[anzahlHamster];
Aufgabe:
Hamster[] RennHamster = new Hamster[4];
RennHamster[0] = new Hamster(0, 0, Hamster.OST, 0);
. . .
class Wettlauf
{
. . .
}
static final int MAXZAHL = 6;
Hamster durchfuehren(Hamster[] RennHamster)
{
. . .
}
Definiere einen Hamster sieger, der zunächst den Wert → null hat.
Hamster sieger = null;
Im weiteren Verlauf der Klasse wird diesem Hamster der Name des Hamsters (die Position des Hamsters im Array) übergeben
while (sieger == null)
{
for (int zaehler = 0; . . .; zaehler ++)
{
if (RennHamster[zaehler].vornFrei())
{
. . .
}
if (!RennHamster[zaehler].vornFrei())
{
sieger = . . .;
return sieger;
}
}
}