ユーザーがかわすためにさまざまなサイズの岩を落とすlibGDXでゲームを設計しています。
私の質問:低い int 値と高い int 値を取り、乱数を返すメソッドを作成するにはどうすればよいですか。ただし、この乱数を範囲の中央に偏らせたい (正規分布と同様)。
メソッドを次のようにしたいと思います: public int randBiasInt(int low, int high) { }
ユーザーがかわすためにさまざまなサイズの岩を落とすlibGDXでゲームを設計しています。
私の質問:低い int 値と高い int 値を取り、乱数を返すメソッドを作成するにはどうすればよいですか。ただし、この乱数を範囲の中央に偏らせたい (正規分布と同様)。
メソッドを次のようにしたいと思います: public int randBiasInt(int low, int high) { }
この種の何かがうまくいくはずです...
public int getBiasedInt(int min, int max) {
int rand = Math.random() * max;
while (rand < min) {
rand = Math.random();
}
int mid = (max / 2) - (min / 2);
int halfmid = mid / 2;
if (rand > mid) {
rand -= Math.random() * halfmid;
} else {
rand += Math.random() * halfmid;
}
return rand;
}
最もきれいではない、私は知っています。しかし、それはあなたが望むものには受け入れられるべきです...