1
resposta

Jogo de adivinhação


int main(){
    // imprime o cabecalho do nosso jogo
    printf("******************************************\n");
    printf("* Bem vindo ao nosso jogo de adivinhacao *\n");	
    printf("******************************************\n");

    int numerosecreto = 42;

    int chute;
    int tentativas = 1;

        while (1) {        

        printf("Tentativa %d\n", tentativas);
        printf("Qual é o seu chute? ");
        scanf("%d", &chute);
        printf("Seu chute foi %d\n", chute);

        if (chute < 0) {
            printf("Você não pode chutar números negativos!\n");
            continue; // O continue serve para que o i++ começe a testar o código novamente, logo, pulando todo o código abaixo de if (chute < 0), caso, a condição seja atendida
        }

        int acertou = (chute == numerosecreto);
        int maior = (chute > numerosecreto);

        if (acertou) {
            printf("Parabéns! Você acertou!\n");
            printf("Jogue de novo, você é um bom jogador!\n");

            break;
        } 

        else if (maior) {
            printf("Seu chute foi maior que o número secreto\n");
        } 
            
        else {
            printf("Seu chute foi menor que o número secreto\n");
        }

        tentativas++;

        }
        printf("Fim de jogo!\n");
        printf("Você acertou em %d tentativas!", tentativas);
}
1 resposta

E aí! Tudo bem?

Parabéns! Mantenha o ritmo nos exercícios e continue compartilhando na nossa comunidade.

Percebi que você elaborou uma estrutura de repetição com while(1), aplicou muito bem o controle de fluxo com continue e break para tornar o jogo mais interativo e ainda entendeu a relevância de comparações lógicas para guiar a lógica de acerto e erro do jogador.

Uma sugestão para evoluir ainda mais é usar rand() da biblioteca <stdlib.h> com o objetivo de gerar números secretos aleatórios a cada execução. Veja só:

#include <time.h>
#include <stdio.h>
#include <stdlib.h>

int main() {
    // Inicializa o gerador de números aleatórios
    srand(time(NULL)); 

    // Recebe um número aleatório entre 0 e 99
    int numerosecreto = rand() % 100;

    printf("%i", numerosecreto);
}

Essa abordagem ajuda a tornar o jogo mais dinâmico e imprevisível, o que pode ser muito útil para manter o desafio interessante.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!