Zufallszahl generieren

Extremefall

Bekanntes Mitglied
Hallo,
ich würde gerne ein Blackjackspiel erstellen.
Ich stelle es mir so vor, dass die einzelnen Karten einer Zahl zugeordnet werden. Die Zahlen werden vorher festgelegt, vielleicht durch ein Array. Wenn man nun auf einen Button klickt, wird eine zufällige Zahl generiert und die Karte dazu aufgedeckt. Natürlich muss die Zahl aus dem Array gelöscht werden, nur wie bekomme ich es hin?

Oder sollte ich vielleicht lieber eine Textdatei erstellen in diesem Schema:
sieben_karo, sieben_kreuz, sieben_herz, sieben_piek

Davon dann zufällig einen Wert auswählen und diesen dann aus der Textdatei löschen, damit er nicht doppelt gewählt wird? Wäre das möglich? Nur wie kann man dann zufällig einen String Wert aus der Textdatei wählen? Was wäre eine gute Möglichkeit? Oder ist es mit Zahlen besser? Dann könnte man das doch über ein Array oder eine Textdatei machen?
 
Alternatives Vorgehen: Du erzeugst einen gemischten Kartenstapel mit n*52 Karten, indem du n-Mal alle Karten geordnet(!) "erzeugst". Jeder erzeugten Karte weist du dann zufällig einen von n*52 vielen Positionen im gemischten (und zu Beginn leeren) Kartenstapel zu. Wenn du zufälligerweise einen bereits belegten Platz erwischst, ziehst du entweder noch einmal zufällig einen neuen Platz oder wählst den von dieser Position aus nächsten oder vorherigen freien Platz zu.

Ark
 
Ich stimme meinem Vorredner zu, es ist am einfachsten, einen geordneten Stapel zu erzeugen und dann durchzumischen. java.util.Collections hat sogar schon eine shuffle-Methode.
 
Häm? Ist es jetzt zu warm oder...? Geht es nur um das ziehen (und Entfernen) zufälliger Karten aus einer Liste? Was spricht da gegen
Code:
List<Card> list = create(...);
Collections.shuffle(list);
Card c0 = list.remove(0);
Card c1 = list.remove(0);
Card c2 = list.remove(0);
?
 
Wäre es aber nicht rein theoretisch auch so möglich:

Es gibt 52 Zahlen. Davon wird per Zufall eine ausgewählt. Dieses Zahl wird dann in ein Textdokument geschrieben. Bei der nächsten Auswahl der Zufallszahl wird das Textdokument mit den bereits genutzten karten ausgelesen und wenn die neue Zufallszahl ungleich der alten ist, wird die Karte aufgedeckt. Wäre das nicht eine genauso gute Alternative? Denn in der Umsetzung müsste es nicht schwieriger sein.

@Marco: Das ist natürlich auch eine gute Möglichkeit. Ich denke, damit werde ich es probieren. Ist wohl am einfachsten.
 
Zuletzt bearbeitet:

Zurück
Oben