Índice
- Introdução
- 1 Versão 1: Adivinhe o número do computador
- 1.1 Gerar Números Aleatórios
- 1.2 Interação com Usuário
- 2 Versão 2: O computador advinha seu número
- 3 Análise do programador
Introdução
Adivinhar coisas é uma das brincadeiras mas comuns entre as pessoas, seja adivinhando cores, personagens de TV, cartas e números. A adivinhação de números é a mais comum dentre as brincadeiras citadas anteriormente. Existem alguns sites que implementam a brincadeira.
Pensando nisso, o que você acha de construir seu próprio jogo de adivinhação
Versão 1: Adivinhe o número do computador
A primeira versão do adivinhador de números consiste simplesmente em adivinhar o número aleatório, gerado pelo computador, em um intervalo de 1 a 100. Deste modo podemos resumir a construção do adivinhador em: gerar o números aleatórios, interação com o usuário e dificuldade.
Gerar Números Aleatórios
Para gerar números aleatórios iremos utilizar as biblioteca time.h e stdlib.h. Para isso utilizaremos as funções srand , rand e time.
O primeiro passo a se fazer é definir a semente que irá gerar os números. Para isso iremos utilizar o tempo do computador, onde, dessa forma estamos tentando evitar a aparição de números repetidos. Então desse modo fazemos:
srand(time(NULL));
Agora definiremos o limite de 1 a 100 calculando o módulo do número randômico por 100 + 1.
x = rand() % 100 + 1;
Interação com Usuário
O resultado do jogo varia de acordo com o chute do usuário, sendo:
- Acertar o chute.
- Errar o jogo, sendo o chute maior ou menor
Caso o usuário tenha acertado devemos exibir uma mensagem com o resultado e quantidade de tentativas:
Caso o usuário erre temos duas opções de mensagens que podem ser exibidas:
Considerando o valor gerado igual a 10.
Para dificultar um pouco o jogo podemos estipular uma quantidade máxima de tentativas. Fazendo isso, devemos exibir uma mensagem ao usuário perguntando se ele deseja tentar novamente:
Pronto agora já podemos começar a jogar!
Versão 2: O computador advinha seu número
No tópico anterior você fez um jogo em que o usuário adivinhava o número que o computador gerava. Mas e se quisermos que o computador adivinhe nosso número? Bom, para isso, utilizaremos uma técnica simples:busca binária
Busca Binária
Para realizar a busca binária iremos tomar 50 como primeiro valor, pois, dessa forma estamos tomando exatamente metade da faixa de números que podem ser gerados. Após isso verificamos com o usuário se 50 é menor que o número que ele pensa:
Como a medida que calculamos a média a faixa de números ira diminuir, chegando ao ponto em que o maior valor e o menor valor sejam iguais, ou seja, o número do jogador foi adivinhado.Por exemplo:
1- Pergunta |----------|----------| 0 50 100 2- Pergunta |----------|----------| 50 75 100 ... N - Pergunta |--------------------| 75 75
Logo poderemos exibir:
Análise do programador
- Colocar sugestão de pôr função
- Tempo médio gasto para implementar o programa:
nível intermediário: aproximadamente 15 min nível iniciante: aproximadamente 45 min