процедурное программирование — Рандомизация не происходит в цикле while. Как это исправить? Переполнение стека

Я не могу получить рандомизацию, чтобы работать, если / внутри присутствует в этом цикле while. Вот код:

#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;

int main(){
srand(time(0));
int dice_num=(rand()% 6+1)+(rand()%6 +1);
char dice_value,your_guess;while(true){

//Dice Conversion
if(dice_num%2==0) dice_value='c';
else dice_value='h';

//User Input
cout<<"Enter 'c'(even) or 'h'(odd)or 'e' to exit : ";
cin>>your_guess;

//User Math
if(your_guess==dice_value){

cout<<"You Won!"<<endl;
}else {

cout<<"You Lost!"<<endl;
}

cout<<your_guess<<dice_value<<endl;
if(your_guess=='e') break;

}
}

я хочу dice_value всегда быть случайным, «c» или «h», но когда цикл повторяется, значение не меняется. Где я неправ?

0

Решение

Вы должны переместить это утверждение:

int dice_num=(rand()% 6+1)+(rand()%6 +1);

в ваш while петля.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]