Módulo 1 · Aula 1.6 · Entrada do jogador: perguntar e responder
| Carga horária | Dificuldade | Ferramenta | Competências |
|---|---|---|---|
| 8 h/a | ⭐⭐ | Scratch | C1, C2, C3 |
Objetivos de aprendizagem
- Usar "pergunte ( ) e espere" e o bloco "resposta".
- Guardar a resposta em uma variável antes de usá-la.
- Criar um laço que só termina quando o jogador acerta.
- Explicar a estratégia de busca binária (dividir ao meio).
Pré-requisitos
Aulas 1.4 e 1.5.
Materiais
Computador; projeto 1-6-adivinhe-o-numero.sb3 (professor).
Conceitos
- "pergunte (Qual o seu nome?) e espere": o ator faz a pergunta e aparece uma caixa de texto embaixo do palco. O roteiro para até o jogador digitar e apertar Enter (ou clicar no ✔).
- "resposta": bolinha azul-clara (em Sensores) que guarda o que foi digitado na última pergunta.
- Por que copiar para uma variável? Porque a próxima pergunta apaga a resposta anterior. "mude [palpite] para (resposta)" guarda com nome claro.
- Busca binária: para adivinhar um número de 1 a 50 com dicas "maior/menor", chute sempre o meio do intervalo que sobrou. Cada chute corta as possibilidades pela metade: 50 → 25 → 12 → 6 → 3 → 1. Com no máximo 6 chutes você acerta.
Exemplos
- Jogos que pedem o nome do jogador para o placar.
- Quiz: a resposta digitada é comparada com a certa (Projeto 2).
Tutorial passo a passo
- Projeto novo
adivinhe-o-numero-v1.sb3. Crie as variáveissecreto,palpiteetentativas. Desmarque a caixinha desecretoepalpitena paleta para não aparecerem no palco (senão o jogo perde a graça). - Monte o roteiro (código abaixo). "pergunte e espere" e "resposta" estão em Sensores.
- Jogue três vezes. Anote quantas tentativas usou.
- Agora jogue usando a busca binária: primeiro chute 25; se for "maior", chute 38; se for "menor", 12; e assim por diante. Anote as tentativas.
O código completo
Ator Gato:
quando ⚑ for clicado
mude [secreto] para (número aleatório entre (1) e (50))
mude [tentativas] para (0)
mude [palpite] para (0)
diga (Pensei em um número de 1 a 50. Adivinhe!) por (2) segundos
repita até que <(palpite) = (secreto)>
pergunte (Qual é o seu palpite?) e espere
mude [palpite] para (resposta)
adicione (1) a [tentativas]
se <(palpite) < (secreto)> então
diga (É maior!) por (1) segundos
fim
se <(secreto) < (palpite)> então
diga (É menor!) por (1) segundos
fim
fim
diga (junte (Acertou! Era ) com (junte (secreto) com (junte (. Você usou ) com (junte (tentativas) com ( tentativas.))))))Projeto pronto: ../projetos/1-6-adivinhe-o-numero/1-6-adivinhe-o-numero.sb3.
Explicação do código
palpitecomeça em 0 para o "repita até que" não terminar antes de começar (o secreto nunca é 0).- "secreto < palpite" é o mesmo que "palpite > secreto"; foi escrito assim para mostrar que dá para inverter os lados.
- Se o jogador acerta, nenhum dos dois "se" é verdadeiro e o laço termina na conferência seguinte.
Resultado esperado (testado)
Um robô de teste jogando com busca binária acertou em 5 tentativas (o limite teórico é 6). O gato termina dizendo, por exemplo, "Acertou! Era 42. Você usou 5 tentativas."
Problemas comuns
| Sintoma | Causa | Solução |
|---|---|---|
| O jogo acaba antes de perguntar | palpite sobrou igual ao secreto da partida anterior | "mude palpite para 0" no começo |
| Dá "É maior!" e "É menor!" errado | trocou os lados do "<" | ler em voz alta: "palpite menor que secreto → é maior" |
| Digitou "dez" e o jogo se perdeu | o jogador escreveu texto | é limitação do jogo; veja o desafio avançado |
| A caixa de resposta não aparece | o roteiro não chegou no "pergunte" | conferir encaixes |
Exercício guiado
Faça o jogo dizer "Quente!" quando o palpite estiver a menos de 5 do número. Dica: em Operadores, perto do fim, existe o bloco "[módulo] de ( )". O "módulo" é o valor sem sinal (módulo de -3 é 3). A distância entre os números é "[módulo] de ((palpite) - (secreto))".
Desafio individual
Limite o jogo a 7 tentativas. Se passar disso, o gato diz "Acabaram as chances! Era ..." e o jogo para.
Desafio avançado (opcional)
Aceite só números: se a resposta não for um número de 1 a 50, o gato diz "Digite um número de 1 a 50" e não conta a tentativa. Dica: "(resposta) < (1)" e "(resposta) > (50)" com ou.
Critérios de avaliação
- O jogo funciona do início ao fim.
- O aluno explica e aplica a busca binária.
Checklist de conclusão
Extensão
Desafie alguém da sua casa: você pensa no número e ela adivinha. Ela usa busca binária sem saber?