J
jDennis79
Gast
Hallo Forum. Ich glaube, ich brauche gerade mal einen kleinen Denkanstoß.
Szenario: Ich habe eine Spielerklasse. Die Klasse verwaltet unter anderem ein Array mit drei Würfelobjekten. Jedes Würfelobjekt verwaltet seine Augenzahlen in einer int-Variablen und gibt seine aktuelle Augenzahl über einen Getter zurück.
In der Spielerklasse gibt es nun eine Methode calculateResult(), innerhalb derer je nach Kombination der drei Augenzahlen ein Ergebnis ermittelt wird.
Meine erste Idee war jetzt eine verschachtelte If-Abfrage:
Aufgrund der Menge an möglichen Kombinationen wird das natürlich ziemlich mächtig und unübersichtlich.
Meine zweite Idee war, alle Augenzahlen in eine ArrayList oder eine andere Collection einzulesen und mit irgendeiner Methode der entsprechenden Collection zu arbeiten.
Ich habe aber in keiner Klasse, die ich in der API gefunden habe, eine geeignete Methode gefunden. Die contains()-Methoden zum Beispiel ermitteln ja nur, ob eine Augenzahl überhaupt vorkommt, aber nicht, wie oft.
Mir fehlt gerade die zündende Idee, wie ich das vereinfachen könnte. Hat jemand Vorschläge oder einen Denkanstoß?
Szenario: Ich habe eine Spielerklasse. Die Klasse verwaltet unter anderem ein Array mit drei Würfelobjekten. Jedes Würfelobjekt verwaltet seine Augenzahlen in einer int-Variablen und gibt seine aktuelle Augenzahl über einen Getter zurück.
In der Spielerklasse gibt es nun eine Methode calculateResult(), innerhalb derer je nach Kombination der drei Augenzahlen ein Ergebnis ermittelt wird.
Java:
public class Player {
// Code
private Die[] setOfDice;
// Code
}
Java:
public class Die {
// Code
private int pipsOfDie;
// Code
}
Meine erste Idee war jetzt eine verschachtelte If-Abfrage:
Java:
if (setOfDice[0].getPipsOfDie() == 1) {
if (setOfDice[1].getPipsOfDie() == 1) {
if (setOfDice[2].getPipsOfDie() == 1) {
// Code
} else ... usw.
Aufgrund der Menge an möglichen Kombinationen wird das natürlich ziemlich mächtig und unübersichtlich.
Meine zweite Idee war, alle Augenzahlen in eine ArrayList oder eine andere Collection einzulesen und mit irgendeiner Methode der entsprechenden Collection zu arbeiten.
Java:
ArrayList<Integer> combination = new ArrayList<Integer>();
for (int i = 0; i < setOfDice.length; i++) {
combination.add(setOfDice[i].getPipsOfDie());
}
Ich habe aber in keiner Klasse, die ich in der API gefunden habe, eine geeignete Methode gefunden. Die contains()-Methoden zum Beispiel ermitteln ja nur, ob eine Augenzahl überhaupt vorkommt, aber nicht, wie oft.
Mir fehlt gerade die zündende Idee, wie ich das vereinfachen könnte. Hat jemand Vorschläge oder einen Denkanstoß?
Zuletzt bearbeitet von einem Moderator: