Pular para o conteúdo
Jogos Digitais
Nesta página
  1. Objetivos de aprendizagem
  2. Pré-requisitos
  3. Materiais
  4. Conceitos
  5. Tutorial passo a passo
  6. O código completo
  7. Explicação do código
  8. Resultado esperado (testado)
  9. Problemas comuns
  10. Exercício guiado
  11. Desafio individual
  12. Desafio avançado (opcional)
  13. Critérios de avaliação
  14. Checklist de conclusão
  15. Extensão

Módulo 1 · Aula 1.11 · Projeto 2, parte 2: sortear, perguntar, corrigir e testar

Carga horáriaDificuldadeFerramentaCompetências
8 h/a⭐⭐⭐⭐ScratchC1, C2, C5

Objetivos de aprendizagem

  1. Sortear sem repetir (tirar o número sorteado da lista).
  2. Validar a entrada do jogador (aceitar só a, b ou c).
  3. Comparar a resposta com a lista de respostas e dar retorno.
  4. Testar o jogo com um plano de testes que cubra acerto, erro e entrada inválida.

Pré-requisitos

Aula 1.10 concluída.

Materiais

Computador; projeto da aula anterior; projeto quiz-sabidinho.sb3 (professor).

Conceitos

  • Sortear sem repetir: sorteamos uma posição da lista ordem, guardamos o número que está lá em atual e apagamos aquela posição. Assim ele não pode sair de novo.
  • Validação: conferir se o que o jogador digitou faz sentido antes de usar. "repita até que" a resposta ser a, b ou c.
  • O "=" do Scratch ignora maiúsculas: "A" = "a" é verdadeiro. Por isso o jogador pode digitar com Caps Lock ligado.
  • Plano de testes: lista de situações que precisam ser testadas, com o resultado esperado.

Tutorial passo a passo

Parte A. "sortear pergunta" (40 min)

  1. Monte a definição (código abaixo).
  2. Teste: com o mostrador de ordem visível, clique várias vezes no chapéu "defina sortear pergunta" (executa a definição). A lista diminui um item por clique e atual mostra o número que saiu.

Parte B. "fazer pergunta" (60 min)

  1. Monte a definição. A condição "resposta válida" é grande: "<(minha_resposta) = (a)> ou <<(minha_resposta) = (b)> ou <(minha_resposta) = (c)>>". Monte de dentro para fora: primeiro o "ou" de b e c, depois o "ou" de fora com a.
  2. Você vai precisar da mesma condição duas vezes. Monte uma vez e use Duplicar (botão direito) para a segunda.

Parte C. "corrigir" (40 min)

  1. Monte a definição com "se ... então ... senão".

Parte D. Testar (100 min)

  1. Execute o plano de testes abaixo, marcando cada linha.
NºComo testarEsperadoOk?
1responder tudo certo"Fim! Você acertou 5 de 5 perguntas."
2responder tudo errado"Fim! Você acertou 0 de 5 perguntas." e a resposta certa aparece a cada erro
3digitar "x""Responda só com a letra a, b ou c." e pergunta de novo
4digitar "B" maiúsculo quando a certa é bconta como acerto
5anotar as 5 perguntas que saíramnenhuma repetida
6jogar duas partidas seguidasa segunda começa com acertos 0 e rodada 0
7apertar Enter sem digitar nadapede de novo

O código completo

As definições desta aula (o roteiro principal e "preparar ordem" estão na Aula 1.10):

defina sortear pergunta
mude [posicao] para (número aleatório entre (1) e (tamanho de [ordem]))
mude [atual] para (item (posicao) de [ordem])
apague (posicao) de [ordem]

defina fazer pergunta
mude [minha_resposta] para ()
repita até que <resposta válida>
    pergunte (junte (rodada) com (junte () ) com (junte (item (atual) de [perguntas]) com (junte (  ) com (item (atual) de [alternativas]))))) e espere
    mude [minha_resposta] para (resposta)
    se <não <resposta válida>> então
        diga (Responda só com a letra a, b ou c.) por (2) segundos
    fim
fim

defina corrigir
se <(minha_resposta) = (item (atual) de [respostas])> então
    adicione (1) a [acertos]
    toque o som [Pop]
    diga (junte (Certo! ) com (item (atual) de [explicacoes])) por (4) segundos
senão
    diga (junte (Não foi dessa vez. A resposta era ) com (junte (item (atual) de [respostas]) com (junte (. ) com (item (atual) de [explicacoes])))) por (5) segundos
fim

Onde está escrito resposta válida, monte: <<(minha_resposta) = (a)> ou <<(minha_resposta) = (b)> ou <(minha_resposta) = (c)>>>.

O texto da pergunta fica, por exemplo: "3) Quanto é 7 x 8? a) 54 b) 56 c) 64".

Projeto pronto: ../projetos/quiz-sabidinho/quiz-sabidinho.sb3.

Explicação do código

  • posicao é o lugar na lista ordem; atual é o número da pergunta. Exemplo: ordem = [1, 2, 5, 7], sorteou posição 3 → atual = 5 → apaga a posição 3 → ordem = [1, 2, 7].
  • minha_resposta começa vazia para o "repita até que" rodar pelo menos uma vez.
  • No "corrigir", a mesma posição atual é usada nas listas respostas e explicacoes: é aqui que as listas paralelas mostram seu valor.

Resultado esperado (testado)

O projeto de referência passou nos testes automáticos: acertando tudo dá 5 de 5 com 5 perguntas diferentes; errando tudo (com letras maiúsculas) dá 0 de 5 e mostra a resposta certa; a resposta "x" faz o apresentador pedir de novo.

Problemas comuns

SintomaCausaSolução
Pergunta repetidafalta "apague (posicao) de [ordem]"último bloco do "sortear"
Aparece pergunta vazialistas desalinhadas ou tamanhos diferentesconferir comprimentos (Aula 1.10)
Sempre "Não foi dessa vez"a lista respostas tem espaço depois da letra ("b ")editar o item no mostrador
Nunca sai do "Responda só com..."o "ou" está montado errado (um "e" no lugar)conferir os dois "ou"
Erro depois de 10 perguntasrodadas maiores que o banco"repita (5)" com 10 perguntas; se aumentar as rodadas, aumente o banco

Exercício guiado

Rode o teste 3 com o professor no projetor e explique, bloco por bloco, por que o "x" é recusado.

Desafio individual

Mostre uma mensagem final diferente conforme o desempenho: 5 acertos "Sabidinho de ouro!", 3 ou 4 "Muito bem!", menos de 3 "Estude mais e tente de novo!".

Desafio avançado (opcional)

Crie um tempo limite de 10 segundos por pergunta com o cronômetro (em Sensores: "zere o cronômetro" e "cronômetro"). Dica: isso exige um segundo roteiro rodando em paralelo, que transmite uma mensagem quando o tempo acaba.

Critérios de avaliação

Rubrica R1 de AVALIACAO.md, com atenção a:

  • Funcionalidade: os 7 testes do plano passam.
  • Documentação e testes: plano de testes preenchido e entregue.
  • Game design: perguntas revisadas e explicações que ensinam.

Checklist de conclusão

Extensão

Troque o quiz com um colega de outra disciplina e jogue. Anote uma coisa que você aprendeu com o quiz dele.