2011-10-07 150 views
0

我做了一個Yahtzee遊戲,玩家擲5個骰子並使用隨機數發生器來確定骰子值。當我在模擬器上運行它時,骰子似乎是足夠隨機的,但由於某種原因,當我在某些手機上運行它時,玩家對許多骰子的獲取值相同:往往這只是一個巧合。例如,如果一個骰子出現4,它通常會出現在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]); 
     } 
    }  
} 

回答

5

您實例化循環,隨機數生成,外界將其移動:

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