1
resposta

MEU JOGO

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

int main () {

int segundos = time(0);

srand(segundos);

int dificuldade;

int tentativas;

int adinhagrande = rand();

int adivinha = adinhagrande % 100;

int chute;

double pontos = 1000; 

printf ("**************************************\n");

printf ("*Seja bem vindo ao Jogo da Adivinhação*\n");

printf ("**\n");

printf ("Para começar, digite a Dificuldade\n");

printf ("(1)FACIL (2)MÉDIO (3)DIFICIL\n\n");

printf ("Escolha  ");



scanf  ("%d", &dificuldade);

if (dificuldade <=0)

{
    printf(":c :c :c Não existe essa dificuldade :/ :/ :/ :c \n");
}

if (dificuldade == 1)
{
    for (tentativas = 1; tentativas<=10; tentativas++)
    {
        printf("Chute um numero: ");
        scanf ("%d", &chute);

        if (chute < adivinha)
        {
            printf ("Olha, o numero que você chutou está muito baixo\n");
        }
        else if (chute>adivinha)
        {
            printf ("Olha, o numero é maior\n");
        }
        else 
        {
            printf ("Você acertou!!\n");
            break;
        }

        double pontosperdidos = abs(chute - adivinha)/(double)2;
        pontos = pontos - pontosperdidos;
    }
}

if (dificuldade == 2)
{
    for (tentativas = 1; tentativas <=5; tentativas++)
    {
        printf("Chute um numero: ");
        scanf ("%d", &chute);

       if (chute <60)
        {
            printf ("Olha, o numero que você chutou está muito baixo\n");
        }
        else if (chute>60)
        {
            printf ("Olha, o numero é maior\n");
        }
        else 
        {
            printf ("Você acertou!!\n");
            printf ("FIM DO JOGO MEU PARCERO\n");
            printf("Você acertou em %d Tentativas\n", tentativas);
             printf("TOTAL DE PONTOS %.1f\n", pontos);
            break;
        }

        double pontosperdidos = abs(chute - adivinha)/(double)2;
        pontos = pontos - pontosperdidos; 
    }
}

if (dificuldade == 3)
{
    for (tentativas = 1; tentativas <=2; tentativas++)
    {
        printf("Chute um numero: ");
        scanf ("%d", &chute);

        if (chute < adivinha)
        {
            printf ("Olha, o numero que você chutou está muito baixo\n");
        }
        else if (chute > adivinha)
        {
            printf ("Olha, o numero é maior\n");
        }
        else 
        {
            printf ("Você acertou!!\n");
            break;
        }

        double pontosperdidos = abs(chute - adivinha)/(double)2;
        pontos = pontos - pontosperdidos;
    }
} 

if (chute == adivinha)
{
    printf ("FIM DO JOGO MEU PARCERO\n");
    printf("Você acertou em %d Tentativas\n", tentativas);
    printf("TOTAL DE PONTOS %.1f\n", pontos);
}
else 
{
    printf ("Não foi dessa vez, mas tente novamente!!\n");
}

}

1 resposta

Olá, Bruno! Como você está?

Pelo código que você compartilhou, parece que você está trabalhando em um jogo de adivinhação em C. Parece bem interessante!

Pelo que entendi, você está tendo dificuldades em implementar o jogo. Vou te ajudar a entender como funciona o código e como fazer as alterações necessárias.

O jogo começa solicitando ao jogador que escolha a dificuldade (1 para fácil, 2 para médio e 3 para difícil). Dependendo da dificuldade escolhida, o jogador terá um número diferente de tentativas para adivinhar o número.

No código que você compartilhou, a lógica para verificar se o chute do jogador é maior ou menor que o número a ser adivinhado está correta. No entanto, há alguns problemas que precisam ser corrigidos.

Primeiro, você precisa inicializar a variável adinhagrande com o valor retornado pela função rand(). Isso pode ser feito adicionando a linha adinhagrande = rand(); logo após a linha srand(segundos);.

Segundo, a variável adivinha deve ser inicializada corretamente. No código atual, ela está sendo inicializada com o valor de adinhagrande módulo 100. No entanto, isso pode levar a um número maior que 100, o que não é desejado. Para corrigir isso, você pode substituir a linha int adivinha = adinhagrande % 100; por int adivinha = adinhagrande % 100 + 1;. Isso garantirá que o número a ser adivinhado esteja entre 1 e 100.

Terceiro, você precisa corrigir a lógica para calcular os pontos perdidos. No código atual, você está calculando os pontos perdidos como a diferença absoluta entre o chute e o número a ser adivinhado dividida por 2. No entanto, isso não está correto. Para corrigir isso, você pode substituir a linha double pontosperdidos = abs(chute - adivinha)/(double)2; por double pontosperdidos = abs(chute - adivinha);. Isso garantirá que os pontos perdidos sejam calculados corretamente.

Por fim, você precisa corrigir a lógica para verificar se o jogador acertou o número. No código atual, você está verificando se o chute é igual ao número a ser adivinhado fora do loop. Isso fará com que o jogo termine prematuramente. Para corrigir isso, você pode mover o trecho de código que verifica se o chute é igual ao número a ser adivinhado para dentro do loop, logo após a linha printf ("Você acertou!!\n");.

Espero que essas dicas te ajudem a resolver as dificuldades que você está enfrentando. Se tiver mais alguma dúvida, é só me dizer! Boa sorte com o jogo de adivinhação!

Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software