Queria saber se há algum outro tipo de solução que não utilize o break nesse código:
#include
#include
#include
#include using namespace std;
int main() { cout << "**" << endl; cout << "* Será que você consegue adivinhar o número secreto? " << endl; cout << "*" << endl; cout << "Escolha o nível de dificuldade." << endl; cout << "Fácil (F), Médio (M), Difícil (D) ou Impossível (I)." << endl;
// escolha do nível e verificação se o nível escolhido é válido.
char nivel;
cin >> nivel;
while (nivel != 'F' and nivel != 'M' and nivel != 'D' and nivel != 'I') {
cout << "Nível inválido, tente novamente." << endl;
cin >> nivel;
}
int qtd_tentativas;
if (nivel == 'F') {
qtd_tentativas = 20;
} else if (nivel == 'M') {
qtd_tentativas = 10;
} else if (nivel == 'D') {
qtd_tentativas = 6;
} else if (nivel == 'I') {
qtd_tentativas = 4;
}
cout << "Você escolheu: " << nivel << endl;
//ínicio das tentativas para acertar o número secreto.
srand(time(NULL));
const int NUMERO_SECRETO = (rand() % 100);
int tentativas = 0;
double pontos = 1000.0;
bool nao_acertou = true;
bool ganhou = false;
for (tentativas = 1; tentativas <= qtd_tentativas; tentativas++) {
int chute;
cout << "Tentativa " << tentativas << endl;
cout << "Qual número você acha que é? " << endl;
cin >> chute;
double pontos_perdidos = abs(chute - NUMERO_SECRETO) / 2.0;
pontos = pontos - pontos_perdidos;
bool acertou = chute == NUMERO_SECRETO;
bool maior = chute > NUMERO_SECRETO;
if (acertou) {
cout << "Parabéns, esse é o número secreto! " << endl;
nao_acertou = false;
break;
} else if (maior) {
cout << "O número secreto é menor. " << endl;
} else {
cout << "O número secreto é maior." << endl;
}
}
cout << "Fim de jogo!" << endl;
if (nao_acertou) {
cout << "Suas tentativas acabaram, tente novamente." << endl;
} else {
cout << "Você acertou o número secreto em " << tentativas << " tentativas." << endl;
cout << fixed << setprecision(2);
cout << "Sua pontuação foi " << pontos << " pontos." << endl;
}
return 0;
}