2
respostas

Randomizar um numero entre diferentes intervalos, dependendo das condições

Tentando fazer esse codigo funcionar dessa maneira:

Basicamente o que pretendo fazer é personalizar o jogo de adivinhação e, de acordo com a dificuldade, o código irá escolher um número aleatório entre um determinado espaço:

char dificuldade;
cin >> dificuldade;

int numero_de_tentativas; 

if(dificuldade == 'F'){
    numero_de_tentativas = 15;       
}
else if(dificuldade == 'M'){
    numero_de_tentativas = 10;
}
else{
    numero_de_tentativas = 5;
}

srand(time(NULL));
const int NUMERO_SECRETO;

if (dificuldade == 'F')
{
   const int NUMERO_SECRETO = rand() % 50;
   cout << "Seu Numero esta entre 0 e 50." << endl;
   cout << "Voce possui 15 tentativas" << endl;
}
else if(dificuldade == 'M'){
   const int NUMERO_SECRETO = rand() % 100;
   cout << "Seu Numero esta entre 0 e 100." << endl;
   cout << "Voce possui 10 tentativas" << endl;
}
else{
   const int NUMERO_SECRETO = rand() % 1000;
   cout << "Seu Numero esta entre 0 e 1000." << endl;
   cout << "Voce possui 5 tentativas" << endl;
}
2 respostas

Resolvido

srand(time(NULL));
int NUMERO_SECRETO;

if (dificuldade == 'F')
{
   NUMERO_SECRETO = rand() % 50;
   cout << "Seu Numero esta entre 0 e 50." << endl;
   cout << "Voce possui 15 tentativas" << endl;
}
else if(dificuldade == 'M'){
   NUMERO_SECRETO = rand() % 100;
   cout << "Seu Numero esta entre 0 e 100." << endl;
   cout << "Voce possui 10 tentativas" << endl;
}
else{
   NUMERO_SECRETO = rand() % 1000;
   cout << "Seu Numero esta entre 0 e 1000." << endl;
   cout << "Voce possui 5 tentativas" << endl;
}

Ótima solução! Só um detalhe de perfeccionismo, eu usaria 51, 101 e 1001. Para não induzir o jogador tentar o maior número do intervalo apresentado na mensagem.

if (dificuldade == 'F')
{
   NUMERO_SECRETO = rand() % 50; // resto da divisão vai ser sempre um número no intervalo [0,49]
   cout << "Seu Numero esta entre 0 e 50." << endl;
   cout << "Voce possui 15 tentativas" << endl;
}
if (dificuldade == 'F')
{
   NUMERO_SECRETO = rand() % 51; // resto da divisão vai ser sempre um número no intervalo [0,50]
   cout << "Seu Numero esta entre 0 e 50." << endl;
   cout << "Voce possui 15 tentativas" << endl;
}