1
resposta

Existe uma alternativa para o uso da função break?

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;

}

1 resposta
Removido a pedido do usuario.