Я хотел набрать несколько «простых» кодовых сообщений с функциями rand и srand, и я попытался запрограммировать симулятор рут Yahtzee. Он случайным образом переворачивает 5 кубиков, и если они совпадают, он печатает, у вас есть Yahtzee и сколько повторных бросков он взял, чтобы получить его. Я набрал это в VM Ubuntu на Windows. Прекрасно работает и получает разумные результаты (от 1 до 4000) ререйлов. Тем не менее, когда я беру один и тот же код в Windows, он ВСЕГДА берет, как 50 milon reerles, чтобы забить Yahtzee. Почему это происходит? Вот код:C Yahtzee simulator берет безумное количество рулонов в Windows, а не в Linux
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void){
int dice1, dice2, dice3, dice4, dice5, count=0, e=1;
while(e==1){
srand(time(NULL)+rand());
dice1 = rand() % (6) + 1;
srand(time(NULL)+rand());
dice2 = rand() % (6) + 1;
srand(time(NULL)+rand());
dice3 = rand() % (6) + 1;
srand(time(NULL)+rand());
dice4 = rand() % (6) + 1;
srand(time(NULL)+rand());
dice5 = rand() % (6) + 1;
if(dice1 == dice2 && dice2 == dice3 && dice3 == dice4 && dice4 == dice5){
printf("\tYAHTZEE! of %i's\n\tIt took %i rolls\n", dice1, count);
if(count >= 2920) printf("+++LESS THAN A 10%% CHANCE!+++\n");
count = 0;
scanf("%i", &e);
} else count++;
}
return 0;
}
Я пытался использовать только первый srand, но он продолжает происходить.
Я уже пробовал это, отредактировал бы его сейчас. Он продолжает происходить, он все еще занимает слишком много времени, чтобы получить бросок Яхтзи. Собственно, что случилось с освежением семени? – Eraqus