Olá,
Realizei o programa em c do jogo de adivinhação, e, para complementar, resolvi incrementar a solicitação do nome no código para interagir com o usuário. Mas, ao compilar, ele está executando todo o jogo e sugerindo o numero nas tentativas. Como corrigir?
Segue o código:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {{
//imprime o cabeçalho do jogo
printf("********************************\n");
printf("Bem vindo ao jogo de adivinhacao\n");
printf("********************************\n");
printf("\n\n");
//declarando variáveis
int segundos = time(0);//passa o número de segundos do momento corrente.
srand(segundos);//srand(segundos), está definindo a “semente” (ou ponto de partida) para a geração dos números aleatórios.
int numero = rand();
int numerosecreto = numero % 100;
int chute;
int ganhou = 0;
int tentativas = 1;
double pontos = 1000;
int nome;
printf("Qual seu nome?: \n");
scanf("%d", &nome);
printf("Voce esta pronto para jogar %d\n", nome);
int nivel;
printf("Qual o nivel de dificuldade deseja jogar?\n");
printf("\n[1] Facil [2] Medio [3] Dificil\n\n");
printf("Escolha seu nivel: \n");
scanf("%d", &nivel);
int numerodetentativas;
switch(nivel){
case 1: numerodetentativas = 20;
break;
case 2: numerodetentativas = 10;
break;
default: numerodetentativas = 5;
break;
}
for (int i = 1; i <= numerodetentativas; i++) {
printf("Tentativa %d\n", tentativas);
printf("Qual e o seu chute?");
scanf("%d", &chute);
printf("Seu chute foi %d\n", chute);
if (chute < 0) {
printf("Nao sao permitidos numeros negativos\n");
continue;
}
//criação da variável acertou para resumir a condicional
int acertou = (chute == numerosecreto);
int maior = (chute > numerosecreto);
if (acertou) {
printf("Parabens %d, voce acertou o numero secreto!!!\n", nome);
break;
}
else {
//criação da variável maior para resumir a condicional
//a variavel maior só existe dentro do else por conta do {
if(maior) {
printf("Seu chute foi maior que o numero secreto\n");
printf("Tente novamente!\n");
}
else {
printf("Seu chute foi menor que o numero secreto\n\n");
printf("Tente novamente!\n");
}
}
tentativas++;
double pontosperdidos = (abs)(chute - numerosecreto) / 2.0;
pontos = pontos - pontosperdidos;
}
printf("Total de pontos nesta rodada: %.1f\n", pontos);
}
printf("Fim de jogo!\n");
system("pause");
return 0;
}