Frage von FelixAE7, 27

Wie kann ich Java die Karten auswählen lassen?

Guten Tag, ich habe diesen Code geschrieben: http://pastebin.com/gNWp3dMU

Nun sollen die Objekte sozusagen Sammelkarten sein welche ich miteinander vergleichen möchte, dazu habe ich auch bereits, wie ihr seht, zufällige Zahlen generieren lassen, welche für die Sammelkarten stehen. Natürlich könnte ich jetzt für jede mögliche Kombination eine If-Schleife schreiben aber irgenwie muss das doch einfacher gehen ?

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von rmnstr, 22

Füge die Karten zuerst einer Liste hinzu und wähle dann einen zufälligen Eintrag aus der Liste.

List<Sammelkarte> karten = new ArrayList<>();
karten.add(s1);
karten.add(s2);
...

Sammelkarte gezogeneKarte = zufaelligeKarte(karten);

public Sammelkarte zufaelligeKarte(List<Sammelkarte> karten) {
Random random = new Random();
return karten.get(random.nextInt(karten.size()));
}
Expertenantwort
von KnusperPudding, Community-Experte für Java, 18

Oh je, etwas zu spät dran. Damit ich mir aber die Mühe nicht um sonst gemacht hab, der Vollständigkeit halber:

Ich würde die Klasse in "Sammelkarte" umbenennen. Einzahl, da eine Instanz der Klasse genau eine Karte repräsentiert.

Für die andere 'Funktionalität' kannst du dann eine weitere Klasse erstellen. z.B. Kartendeck. Also ein Stapel, dem du Karten hinzufügen kannst, und von dem du Karten ausspielen kannst.

Die Methodik zum Ausspielen hat rmnstr relativ gut beschrieben. In meinem Beispiel nehme ich allerdings die Karte nach dem ausspielen aus dem Deck. 

http://pastebin.com/KShKRhQe

Kommentar von rmnstr ,

Das wäre dann in puncto Objektorientierung die bessere Lösung. Ich hab mich nur auf die Kernfrage bezogen. :)

Kommentar von KnusperPudding ,

Ich weiß. Darum gab's auch einen Pfeil hoch auf deine Antwort von mir.

Antwort
von FelixAE7, 23

Zweite Klasse:

http://pastebin.com/tnb6ekDV

Keine passende Antwort gefunden?

Fragen Sie die Community