2016-02-21 8 views
0

Я не могу получить рандомизацию для работы, если if/else присутствует внутри этого цикла while. Вот код:Рандомизация не возникает во время цикла. Как это исправить? C++

#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 Я хочу, чтобы всегда быть случайным ли «с» или «ч», но когда цикл повторяется, значение не меняется. Где я неправ?

ответ

3

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

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

в вашу while петлю.

+2

OMG !!!! Я собираюсь спрыгнуть с утеса ..... Я так глуп ..... Спасибо большое !!! – Sadij