Aparentemente a função "abs()" está interferindo na contagem de pontos. Até eu inserir essa função, ele me retornava os valores "quebrados" das casas decimais, entretanto agora ele sempre me retorna o valor inteiro seguido de 0s (por exemplo, 999.00). Há alguma maneira de impedir que isso ocorra sem ter que abrir mão do "abs()" ou então sem o uso de gambiarras?
Segue abaixo meu código até a presente aula:
#include
#include
int main() {
//Imprime o cabeçalho do jogo
printf("******************************************");
printf("\n* Bem vindo ao nosso jogo de adivinhacao *\n");
printf("******************************************");
int numSecreto = 42, chute, ganhou = 0, numTentativas = 1;
float pontos = 1000;
while(ganhou == 0) {
printf("\nTentativa %i.", numTentativas);
printf("\nQual eh o seu chute, jogador? ");
scanf("%i", &chute);
if(chute < 0) {
printf("\nATENCAO!\nVoce nao pode digitar numeros negativos!\n");
continue;
}
int acertou = (chute == numSecreto);
int maior = (chute > numSecreto);
if(acertou) {
printf("\nParabens!!!!!\nAcerto miseravi!!!\n");
ganhou = 1;
}
else if(maior) {
printf("\nVoce errou! Quem sabe na proxima...\n");
printf("Seu numero chutado eh MAIOR que o numero secreto. ;D\n");
}
else {
printf("\nVoce errou! Quem sabe na proxima...\n");
printf("Seu numero chutado eh MENOR que o numero secreto. ;D\n");
}
numTentativas++;
float pontosPerdidos = abs(chute - numSecreto) / (float)2;
pontos = (pontos - pontosPerdidos);
printf("\n\n");
}
printf("Voce acertou em %i tentativas!\n", numTentativas - 1);
printf("Seu total de pontos foi de %.2f!\n", pontos);
printf("\n*** FIM DE JOGO ***\n\n");
}