Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Meu jogo completo. deixei mais decorado :)

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

int main(){ 

// Nome do joguinho
printf("|---------------------------------------------\n");
printf("|***** BEM VINDO AO JOGO DE ADIVINHACAO! *****\n");
printf("|---------------------------------------------\n|");

//Variaveis(1)

int seg = time(0);
srand(seg);

int numg = rand();

int tent = 1;
int chute;
int numsec = numg % 100; // Numero secreto
double pontos = 1000; // pontuação
int ganhou = 0;

int maxtent; // maximo de tentativas
int nivel;

printf("*********** selecione dificuldade ***********");
printf("\n|---------------------------------------------");
printf("\n|******** (1)Facil (2)Medio (3)Dificil *******\n");
printf("|Escolha: ");
scanf("%d", &nivel);

    switch(nivel){
            case 1:
                    maxtent = 15;
                    break;
                
            case 2: 
                    maxtent = 10;
                    break;

            default:
                    maxtent = 5;
                    break;
    }
    
for(int tenta = 1; tenta <= maxtent; tenta++){
    printf("|---------------------------------------------");
    printf("\n|Tentativa %d de %d.", tent, maxtent);
    printf("\n|Qual e seu chute?\n");
    printf("|seu chute: ");
    scanf("\n%d", &chute);

    //Variaveis (2)
    int maior = (chute > numsec);
    ganhou = (chute == numsec);

    if(chute <0){
        printf("|nao pode numero negativo...\n");
        continue;
    }

    if(ganhou){
        break;
    }

        else if (maior){
            printf("|seu chute foi maior do que o numero secreto\n");
    }
    
    else{
        printf("|seu chute foi menor do que o numero secreto\n");
    }
        pontos-= (abs)(chute - numsec) / (double)2;

    tent++;
}
if(ganhou){
    printf("|\n|\n|parabuens voce ganhou!");
    printf("\n|voce tentou %d vezes.\n", tent);
    printf("|voce fez %.1f pontos\n\n", pontos);

} else{
    printf("\n|\n|Voce perdeu! tente novamente.\n");
    printf("|O numero Secreto era: %d", numsec);
    printf("\n|Fim de Jogo.\n\n");
}
1 resposta
solução!

Olá, Bruno. Tudo bem?

Muito obrigado por compartilhar o seu código aqui com a gente. Parabéns pelo trabalho. Continue com essa dedicação.

Ótimo como você organizou as mensagens no jogo para tornar a experiência mais imersiva. A estrutura do switch para selecionar a dificuldade também está bem implementada.

Uma dica: no cálculo da pontuação, o (abs)(chute - numsec) / (double)2 pode ser melhorado removendo os parênteses extras ao redor de abs, que podem gerar erro em algumas versões do compilador. Veja este exemplo:


pontos -= abs(chute - numsec) / 2.0;

Isso garante que a divisão seja feita corretamente como um número decimal.

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