動作しないコードは次のとおりです。
Enemy.strength = srand((unsigned)time(NULL)) % 10;
Enemy.strength は int です
いくつかの調査を行ったところ、次のような rand/srand で変数を直接定義できないことがわかりました。
a = rand();
なぜ、これを回避する方法があるのか 、それともあなたが提案する代替手段があるのか 疑問に思っています
言語: C... C++ ではない
srand(seed)
無効を返します。乱数発生器をシードするためのものです。rand()
0 から RAND_MAX (stdlib.h で定義) までの疑似乱数整数を返します。
したがって、敵のランダムな強さを得るには、次のようにする必要があります。
Enemy.strength = rand() % 10; // gives a strength between 0 and 9
srand
コードのどこかに呼び出しを配置できますが、呼び出す必要があるのは 1 回だけです。rand() を呼び出す前に呼び出す必要があります。
srand() はシードを最初の引数として受け入れます。Enemy.strength を割り当てる前に srand() の呼び出しを配置し、代わりに rand() の戻り値を割り当てます。
srand((unsigned)time(NULL)), Enemy.strength = rand() % 10;