0

私のゲームでは、これに条件を使用できることはわかっていますが、それを簡単にする数学の方程式があるかどうかを確認したいと思いました。使用したいのですがarc4random()

私が必要なのは:

  1. 私のスコアが1〜20の場合、確率:25分の1
  2. 私のスコアが21-40の場合、確率:20分の1
  3. 私のスコアが41-60の場合、確率:15分の1
  4. 私のスコアが60以上の場合、確率:10分の1。

これは可能ですか?もしそうなら、私はこれをどのように達成しますか?

ありがとう!

4

1 に答える 1

1

これでうまくいくはずです(明確であることを願っています!):

int modNumber = 25;
float alteredScore = score - (floor((score-1)/60) - 1) * 60;
modNumber -= floor((alteredScore-1)/20) * 5;
int result = arc4random() % modNumber;  // Or arc4random_uniform(modNumber) if you want to completely remove modulo bias, but beaing in mind the non-randomness (!) of arc4random and the size of modNumber I highly doubt it would make any real difference
if (!result) {
    // Result is 0
    // Do stuff for the lucky person
} else {
    // Make them miserable
}
于 2011-11-18T22:43:57.840 に答える