Wie kann ich Java die Karten auswählen lassen?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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()));
}

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

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

1
@rmnstr

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

0

Was möchtest Du wissen?