スレッドを持つパックマンCゲームを開発しようとしています。 メインは2つのスレッドを作成し、そこではrand操作を実行する必要がありますが、randの結果は同じです。ここ はコードです:スレッド付きサンド - C
int main()
{
srand((unsigned)time(0));
HANDLE tFantasma = CreateThread(NULL, 0, fantasma, NULL, 0, NULL);
srand((unsigned)time(0));
HANDLE tFantasma2 = CreateThread(NULL, 0, fantasma, NULL, 0, NULL);
return 0;
}
DWORD WINAPI fantasma(LPVOID lpParam)
{
int mov = rand() % 4;
printf("%d",mov);
return 0;
}
randを2回シードします。一度は十分でしょう。また、2つのコールの間の時間は同じになり(時間が過ぎると)、同じシードがシードされます。シーケンスが始まると、同じ番号から始まる可能性があります。 –
だから、シードを一度設定しなければならないのですか? –