Olá, tudo bem?
Gostaria de adicionar um comando que interrompa o jogo se o usuário digitar uma letra inválida ao escolher o nível de dificuldade. Tentei fazer com o próprio "break;" mas o programa retorna um erro. Há outros comandos que sirvam para este propósito?
Grato desde já <3
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main () {
cout << "************************************" << endl;
cout << "* Bem-vindo ao jogo da adivinhacao *" << endl;
cout << "* ***********************************" << endl;
cout << "Escolha a sua dificuldade: " << endl;
cout << "Facil (F), Medio (M) ou Dificil (D)." << endl;
char dificuldade;
cin >> dificuldade;
int numero_tentativas;
if(dificuldade == 'F') {
numero_tentativas = 15;
}
else if(dificuldade == 'M') {
numero_tentativas = 10;
}
else if(dificuldade == 'D'){
numero_tentativas = 5;
}
else {
cout << "Digite um nivel valido." << endl;
break;
}
srand(time(0)); //Igual a srand(time(NULL));
const int NUMERO_SECRETO = rand() % 100;
//cout << "NS = " << NUMERO_SECRETO << endl;
bool nao_acertou = true;
int tentativas = 0;
double pontos = 1000.0;
//cout << "O número secreto é o " << NUMERO_SECRETO << ". Não conte a ninguém." << endl;
for(tentativas = 1; tentativas <= numero_tentativas; tentativas++) {
int chute;
cout << "Tentativa: " << tentativas << "." << endl;
cout << "Qual o seu chute? " << endl;
cin >> chute;
double pontos_perdidos = abs(chute - NUMERO_SECRETO) / 2.0;
pontos = pontos - pontos_perdidos; //Igual a pontos -+ pontos_perdidos;
cout << "O valor do seu chute foi: " << chute << endl;
bool acertou = chute == NUMERO_SECRETO;
bool maior = chute > NUMERO_SECRETO;
if(acertou) {
cout << "Excelenteeeee!!! Acertou o numero secreto :)" << endl;
nao_acertou = false;
break;
}
else if (maior) {
cout << "Seu chute foi maior que o numero secreto." << endl;
}
else {
cout << "Seu chute foi menor que o numero secreto." << endl;
}
}
cout << "* FIM DE JOGO *" << endl;
if(nao_acertou) {
cout << "Perdeuuu :( Tente novamente!" << endl;
cout << "O numero secreto era o " << NUMERO_SECRETO << "." << endl;
}
else {
cout << "Acertou depois de " << tentativas << " tentativas." << endl;
cout.precision(2); //Define a quantidde de casas decimais que deseja-se imprimir na tela.
cout << fixed; //Garante que o número não apareça em notação científica.
cout << "Sua pontuacao foi de " << pontos << " pontos!" << endl;
}
}