このプロジェクトは 6 面のサイコロを転がし、90% の確率で 6 に、2% の確率で 1-5 に着地させたいと考えています。
これがメインクラスのDieです
public class Die
{
//----------------------------------------------------------------------------------
// Instance Variables
//----------------------------------------------------------------------------------
protected int numSides;
protected Random myRandomNumGenerator;
//----------------------------------------------------------------------------------
//Constructors
//----------------------------------------------------------------------------------
/**
* Default constructor creates a 6-sided die.
*/
public Die()
{
numSides = 6;
myRandomNumGenerator = new Random();
}
/**
* This constructor takes in a single integer value and create a die with
* that number of sides.
*
* @param aNumSides Number of sides to create on the die.
*/
public Die(int aNumSides){
numSides = aNumSides;
myRandomNumGenerator = new Random();
}
//----------------------------------------------------------------------------------
//Class Methods
//----------------------------------------------------------------------------------
/**
* Getter for the number of sides on the die.
*
* @return The number of sides on the die.
*/
public int getNumOfSides()
{
return numSides;
}
/**
* Rolls the die to get a random value.
*
* @return A random value between 1 and the number of sides.
*/
public int roll()
{
return myRandomNumGenerator.nextInt(numSides) + 1;
}
}
これは、ダイのロール メソッドをオーバーライドして、ダイを正しい値にロードする必要があるサブクラスです。
import java.util.Random;
public class LoadedDie extends Die{
protected double loadedPercentage;
protected int numSides;
protected int loadedValue;
protected Random ranNumGenerator;
public LoadedDie() {
loadedValue = 6;
loadedPercentage = .9;
}
public LoadedDie(int aNumSides, int aLoadedValue, double aLoadedPercentage) {
numSides = aNumSides;
loadedValue = aLoadedValue;
loadedPercentage = aLoadedPercentage;
}
public int roll() {
return ranNumGenerator.nextInt(numSides)+1;
}
}
乱数を他の人よりも頻繁に発生させる方法がわかりません。ありがとう