Advinhador de números

 

 

AdivinhadorÍ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:

Acertou

Caso o usuário erre temos duas opções de mensagens que podem ser exibidas:

Considerando o valor gerado igual a 10.

Errou1.PNG

Errou2.PNG

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:

Tentativa.PNG

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:

Seunu.PNG

Pergunta.PNG

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:

Acertei.PNG

 

 

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