Bisher kennst du das → das Hamster-Klassenmodell. Daneben gibt es ein → allgemeines Klassenmodell, das die Erstellung eigenständiger Klassen ermöglicht.
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];
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; } } }