1
resposta

Solução para dificuldade e/ou chutes inválidos informados pelo usuário:

#include <iostream>
#include <locale>
#include <stdlib.h>
#include <ctime>
#include <cstdlib>
#include <windows.h>

using namespace std;

int main() {
    setlocale(LC_ALL, "");
    system("cls");

    cout << "Bem-vindo ao jogo da adivinhação!" << endl;

    srand(time(NULL));
    const int secret_number = rand() % 100;
    int tentativas = 0;
    int numero_de_tentativas = 0;

    double pontos = 1000.0;

    bool acertou = false;

    bool escolheu_dificuldade = false;
    while(!escolheu_dificuldade) {
        cout << "Em qual dificuldade você deseja jogar?" << endl;
        cout << "Fácil (F), Médio (M), Difícil (D)" << endl;
        char dificuldade;
        cin >> dificuldade;
        if (dificuldade == 'F') {
            numero_de_tentativas = 15;
            break;
        }
        else if (dificuldade == 'M') {
            numero_de_tentativas = 10;
            break;
        }
        else if (dificuldade == 'D') {
            numero_de_tentativas = 5;
            break;
        }
        else {
            cout << "Você digitou uma alternativa inválida. Tente novamente:" << endl;
        }
    }

    for (tentativas = 1; tentativas <= numero_de_tentativas; tentativas++){
        cout << "Tentativa: " << tentativas << " de " << numero_de_tentativas << endl;

        int guess;
        cout << "Digite um número entre 1-100: ";
        cin >> guess;

        double pontos_perdidos = std::abs(guess - secret_number) / 2.0; 
        pontos = pontos - pontos_perdidos;

        while (guess <= 0 || guess > 100) {
            cout << "Você deve chutar um número entre 1-100! Tente novamente:" << endl;
            cout << "Tentativa: " << tentativas << " de " << numero_de_tentativas << endl;
            cout << "Digite um número entre 1-100: ";
            cin >> guess;
        }

        if (guess == secret_number) {
            cout << "Parabéns! Você descobriu o número secreto em " << tentativas << " tentativas!" << endl;
            acertou = true;
            break;
        }
        else if (guess < secret_number) {
            cout << "O seu chute é menor que o número secreto." << endl;
        } else {
            cout << "O seu chute é maior que o número secreto." << endl;
        } 

    }

    if (!acertou) {
        cout << "Infelizmente você não conseguiu adivinhar o número secreto :(";
    } else {
        cout.precision(2);
        cout << fixed;
        cout << "Você fez um total de " << pontos << " pontos!" << endl;
    }

    return 0;

}
1 resposta

Olá, Rafael! Tudo bem?

Muito obrigada por compartilhar sua solução com a gente! Fique à vontade para compartilhar dúvidas e sugestões aqui no fórum, pois pode ajudar outros estudantes!

Qualquer coisa estou por aqui!

Abraços e bons estudos!