どちらのプレイヤーも同じ乱数を得る!私はそれぞれのプレイヤーがサイコロを投げているので、別の番号を取得したい。どのようにして各プレーヤーに異なる乱数を生成できますか?
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int roll_a_dice(void);
int main(int argc, const char *argv[])
{
int flag;
int answer1 = roll_a_dice();
int answer2 = roll_a_dice();
printf("Die 1 (rolled by player 1): %d\n", answer1);
printf("Die 2 (rolled by player 2): %d\n", answer2);
if (answer1>answer2) {
printf("Player 1 is starting!\n");
flag = 1;
} else {
printf("Player 2 is starting!\n");
flag = 2;
}
printf("Goodbye!\n");
return 0;
}
int roll_a_dice(void)
{
int r;
srand(time(NULL));
r = 1 + rand() % 6;
return r;
}
プレイヤーがサイコロを投げている: はここのコードです。したがって、数字は1〜6でなければなりません。 これを修正するにはどうすればよいですか?
異なるオプション1..6を配列に入れます。ランダム配列インデックスを選択します。その項目を配列から削除します(最後の配列と置き換えて長さを短くします)。 –
移動 'srand(時間(NULL));' roll_a_diceの外側 –
別の総マルチマルチ –