Olá, estou na primeira aula do curso de Formação Linguagem C!
Gostaria de acrescentar isso no projeto, como pode ser feito?
- retornar erro quando o usuário selecionar letras ou números diferentes de 1 a 3 para selecionar o nível de dificuldade;
- acrescentar uma pista após a 3º tentativa de chute para ajudar o usuário a chutar;
- retornar mensagem de erro quando o usuário selecionar letras no lugar de um chute numérico;
- acrescentar uma reexecução do programa ao final, no caso de usuário escrever "sim" para jogar novamente;
Grato!
// incluindo as bibliotecas
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main() {
setlocale(LC_ALL, "Portuguese_Brazil");
// imprimindo cabecalho do jogo
(...)
//nome
char nome[20];
printf("\nQuem me desafia?\n");
printf("(Digite seu nome)\n");
scanf("%s", nome);
printf("\n\nSe sente com sorte hoje, %s?", nome);
printf("\nVamos descobrir...\n");
printf("\n\n");
// regras
(...)
// declarando variaveis
int chute;
int acertou;
int nivel;
int totaldetentativas;
// definindo pontos inicial
double pontos = 1000;
// gerando um numero
srand(time(0));
int numerosecreto = rand() % 100 + 1;
// escolhendo o nivel de dificuldade
(...)
switch(nivel) {
case 1:
totaldetentativas = 20;
break;
case 2:
totaldetentativas = 15;
break;
default:
totaldetentativas = 6;
break;
}
**//1. tratando nível diferente de 1-3 ---------- bug**
** // 2. dar uma pista após 3º tentativa--------------bug**
do {
if (totaldetentativas == 3)
{
int quadrado = 0;
quadrado = numerosecreto*numerosecreto;
printf("\n");
printf("\nVou te dar uma pista: ");
printf("\no quadrado do número secreto é %d", quadrado);
printf("\nJá sabe? Tente de novo; ");
printf("\n");
}
}
// loop principal do jogo
for(int i = 1; i <= totaldetentativas; i++) {
printf("\n-> Tentativa %d de %d \n", i, totaldetentativas);
printf("Chute um número:");
scanf("%d", &chute);
** //3. tratando chute igual a letras-------------------------------------bug de *enter*
if(scanf("%d", &chute)!= 1) {
int ch;
while ((ch = getchar()) != '\n' && ch != EOF) /* nada */;
if (ch == EOF) /* input acabou e nao ha mais dados */;
printf("Você não digitou um número, digite apenas números!\n");
i--;
continue;
}**
// tratando chute de numero negativo
if(chute < 0) {
printf("Você não pode chutar números negativos\n");
i--;
continue;
}
// Tratando chute maior que 100
if(chute > 100) {
printf("Você não pode chutar números maiores que 100\n");
i--;
continue;
}
acertou = chute == numerosecreto;
if(acertou) {
break;
} else if(chute > numerosecreto) {
printf("\nSeu chute foi maior do que o número secreto!\n\n");
} else {
printf("\nSeu chute foi menor do que o número secreto!\n\n");
}
double pontosperdidos = abs(chute - numerosecreto) / 2.0;
pontos = pontos - pontosperdidos;
}
printf("\n");
if(acertou) {
(...)
printf("\nParabéns! %s, Você acertou!\n", nome);
printf("\n O número era: %d\n", numerosecreto);
printf("Você fez %.2f pontos. Até a próxima!\n\n", pontos);
} else {
printf(" \\|/ ____ \\|/ \n");
printf(" @~/ ,. \\~@ \n");
printf(" /_( \\__/ )_\\ \n");
printf(" \\__U_/ \n");
printf("\nQue pena, %s, Você perdeu! Tente novamente!\n\n", nome);
printf("\n O número era: %d\n", numerosecreto);
}
}