programação Dev C++
Utilizando a instrução "while" ou "do...while",crie um jogo de perguntas e respostas com
no mínimo 3 perguntas onde ou o jogador terá 3 chances para cada pergunta. obs. Queria a programação pronta, é pra hj e não entendi como faz, se puderem me ajudar.
att!
Soluções para a tarefa
Resposta:
Assim, o código completo de nosso primeiro jogo em C fica:
#include <stdio.h>
#include <time.h>
int random();
void dicas(int number, int password, int attempt);
int main()
{
int continuar=1,
password,
attempt,
number;
do
{
system("cls || clear");
printf("Sorteando numero entre 1 e 1000...\n");
password = random();
printf("Comecou! Tente adivinhar o numero!\n\n");
attempt = 0;
do
{
attempt++;
printf("Tentativa %d: ", attempt);
scanf("%d", &number);
dicas(number,password,attempt);
}
while( number != password);
printf("Digite 0 para sair, ou qualquer outro numero para continuar: ");
scanf("%d", &continuar);
}
while(continuar);
}
int random()
{
srand( (unsigned)time(NULL) );
return (1 + rand()%1000);
}
void dicas(int number, int password, int attempt)
{
if(number > password)
printf("O numero sorteado e menor que %d\n\n", number);
else
if(number < password)
printf("O numero sorteado e maior que %d\n\n", number);
else
printf("Parabens! Voce acertou o numero em %d tentativas!\n\n", attempt);
}
A estratégia para acertar é sempre ir na metade. Primeiro tente o número 500.
Assim, você eliminará metade das possibilidades, pois já sabe que vai estar entre 1 e 499, ou entre 501 e 1000.
Se for maior que 500, tente 750. Se for menor, tente 250.
A explicação disso é eliminar metade (250), dos 500 possíveis números...depois 125, depois 62, depois 31, depois 15, depois 8, depois 4, depois 2 e por fim, 1. Ou seja, sempre se acerta, em no máximo 9 tentativas.