0

動作しないコードは次のとおりです。

Enemy.strength = srand((unsigned)time(NULL)) % 10;

Enemy.strength は int です

いくつかの調査を行ったところ、次のような rand/srand で変数を直接定義できないことがわかりました。

a = rand();

なぜ、これを回避する方法があるのか​​ 、それともあなたが提案する代替手段があるのか​​ 疑問に思っています

言語: C... C++ ではない

4

3 に答える 3

4

srand(seed)無効を返します。乱数発生器をシードするためのものです。rand()0 から RAND_MAX (stdlib.h で定義) までの疑似乱数整数を返します。

したがって、敵のランダムな強さを得るには、次のようにする必要があります。

Enemy.strength = rand() % 10; // gives a strength between 0 and 9

srandコードのどこかに呼び出しを配置できますが、呼び出す必要があるのは 1 回だけです。rand() を呼び出す前に呼び出す必要があります。

于 2012-06-15T05:44:34.300 に答える
1

srand() はシードを最初の引数として受け入れます。Enemy.strength を割り当てる前に srand() の呼び出しを配置し​​、代わりに rand() の戻り値を割り当てます。

srand((unsigned)time(NULL)), Enemy.strength = rand() % 10;
于 2012-06-15T05:45:03.627 に答える
0


srand randをさらに理解するには、以下のリンクを参照してください。

于 2012-06-15T07:20:41.590 に答える