android随机数生成器不够随机

时间:2011-10-07 10:45:44

标签: android random

我做了一个Yahtzee游戏,玩家掷5个骰子并使用随机数生成器来确定骰子值。当我在模拟器上运行时,骰子似乎是随机的,但出于某种原因,当我在某些手机上运行它时,玩家会继续为许多骰子获得相同的值:太经常让它成为巧合。例如,如果一个骰子上出现一个骰子,则通常会出现3或4个其他骰子。使问题难以找到的原因是它不一致:偶尔投掷是正常的。我使用以下代码确定所有5个骰子的随机数:

public void randomDize(){
    int randSpot;

    for(int i = 0; i < 5; i++){
        Random randomGenerator = new Random();
        randSpot = randomGenerator.nextInt(6);
        if(DieSet[i]== 0){
            DieVal[i]=randSpot;
            imageButtons[i].setBackgroundResource(imageRes[randSpot]);
        }
    }       
}

1 个答案:

答案 0 :(得分:6)

您在循环中实例化随机生成器,将其移到外面:

private Random randomGenerator = new Random();
//or even:
// private static Random randomGenerator = new Random();
public void randomDize(){
    int randSpot;

    for(int i = 0; i < 5; i++){

        randSpot = randomGenerator.nextInt(6);
        if(DieSet[i]== 0){
            DieVal[i]=randSpot;
            imageButtons[i].setBackgroundResource(imageRes[randSpot]);
        }
    }       
}