Guten Morgen,
ist das Ermitteln der Karten in folgender Klasse wirklich zufällig?
Ich kenn es nämlich aus VB6, dass als Zufallszahl bei jedem Programmstart die Gleiche ausgegeben wird.
ist das Ermitteln der Karten in folgender Klasse wirklich zufällig?
Ich kenn es nämlich aus VB6, dass als Zufallszahl bei jedem Programmstart die Gleiche ausgegeben wird.
Java:
package org.pss.poker.cards;
import java.util.Arrays;
import java.util.List;
/**
*
* @author neonfly
*/
public class ShuffleCardDeck {
private Integer gvNumPlayers = 0;
private String gvGame = "none";
private static String HOLDEM = "HOLDEM";
private static String OMAHA = "OMAHA";
private static String DETERMINEDEALER = "DEALER";
private static final List<String> gvCardDeck
= Arrays.asList("2c","3c","4c","5c","6c","7c","8c","9c","Tc","Jc","Qc","Kc","Ac",
"2d","3d","4d","5d","6d","7d","8d","9d","Td","Jd","Qd","Kd","Ad",
"2h","3h","4h","5h","6h","7h","8h","9h","Th","Jh","Qh","Kh","Ah",
"2s","3s","4s","5s","6s","7s","8s","9s","Ts","Js","Qs","Ks","As");
public ShuffleCardDeck(Integer pvNumPlayers, String pvGame) {
this.gvNumPlayers = pvNumPlayers;
this.gvGame = pvGame;
}
public List<String> getCards() {
List<String> lvCardList = null;
if(gvGame.equals(HOLDEM)) {
/**
* Anzahl benoetigter Karten = 5 + (2 * gvNumPlayers)
*/
Integer lvNumCards = 5 + (2 * gvNumPlayers);
while(lvNumCards >= 0) {
lvCardList = getCard(lvCardList);
lvNumCards--;
}
} else if(gvGame.equals(OMAHA)) {
/**
* Anzahl benoetigter Karten = 5 + (4 * gvNumPlayers)
*/
Integer lvNumCards = 5 + (4 * gvNumPlayers);
while(lvNumCards >= 0) {
lvCardList = getCard(lvCardList);
lvNumCards--;
}
} else if(gvGame.equals(DETERMINEDEALER)) {
/**
* Anzahl benoetigter Karten = gvNumPlayers
*/
while(gvNumPlayers >= 0) {
lvCardList = getCard(lvCardList);
gvNumPlayers--;
}
} else {
return null;
}
return lvCardList;
}
private List<String> getCard(List<String> pvCardList) {
Integer lvRandNumber = (Integer) randomNumber(gvCardDeck.size());
pvCardList.add(gvCardDeck.get(lvRandNumber-1));
gvCardDeck.remove(lvRandNumber-1);
return pvCardList;
}
private int randomNumber(Integer n) {
Double lvDouble = Math.random();
int lvNumber = (int) Math.round(lvDouble * n );
return lvNumber;
}
}
Zuletzt bearbeitet: