https://makecode.microbit.org/_7PyRbs2MwdFE

Ano: 6º ano

Unidade Temática: Números

Objeto de Conhecimento:

  • EF06MA04: Classificar números naturais em primos e compostos, estabelecer relações entre números, expressas pelos termos “é múltiplo de”, “é divisor de”, “é fator de”, e estabelecer, por meio de investigações, critérios de divisibilidade por 2, 3, 4, 5, 6, 8, 9, 10, 100 e 1000.
  • EF06MA05: Resolver e elaborar problemas que envolvam as ideias de múltiplo e de divisor.

Pilar do Pensamento Computacional: Reconhecimento de padrões

Descrição do Projeto:

Neste jogo interativo, o micro:bit exibe um número aleatório entre 2 e 30. O aluno deve decidir se o número é primo (botão A) ou não primo (botão B). Ao final de 10 rodadas, o micro:bit mostra quantas respostas foram corretas.

Objetivos:

  • Fixar o conceito de números primos e compostos.
  • Estimular o raciocínio rápido.
  • Trabalhar padrões matemáticos e critérios de divisibilidade.

Implementação na Aula:

  1. Professor introduz o conceito de números primos, compostos e divisibilidade.
  2. Alunos discutem exemplos.
  3. Alunos jogam individualmente no micro:bit.
  4. Ao final, compartilham seus "scores".
  5. Roda de conversa sobre os erros mais comuns e os padrões percebidos.

Tutorial de Criação com Blocos:

  1. Criar uma variável chamada score e outra contador.
  2. Ao iniciar, defina score = 0 e contador = 0.
  3. Crie uma lista com os números de 2 a 30.
  4. Mostre um número aleatório da lista.
  5. Se o botão A for pressionado, verifique se o número é primo:
  • Se sim, aumente score em 1 e mostre
  • Senão, mostre
  1. Se o botão B for pressionado, verifique se o número não é primo:
  • Se sim, aumente score em 1 e mostre
  • Senão, mostre
  1. Repita até contador = 10
  2. Ao final, mostre score

Código (JavaScript/MakeCode):

let numero = 0
let score = 0
let contador = 0

function ehPrimo(n: number): boolean {
    if (n <= 1) return false
    for (let i = 2; i <= Math.sqrt(n); i++) {
        if (n % i == 0) return false
    }
    return true
}

input.onButtonPressed(Button.A, function () {
    if (ehPrimo(numero)) {
        score++
        basic.showIcon(IconNames.Yes)
    } else {
        basic.showIcon(IconNames.No)
    }
    proximaRodada()
})

input.onButtonPressed(Button.B, function () {
    if (!ehPrimo(numero)) {
        score++
        basic.showIcon(IconNames.Yes)
    } else {
        basic.showIcon(IconNames.No)
    }
    proximaRodada()
})

function proximaRodada() {
    contador++
    basic.pause(1000)
    basic.clearScreen()
    if (contador < 10) {
        numero = randint(2, 30)
        basic.showNumber(numero)
    } else {
        basic.showString("Score:")
        basic.showNumber(score)
    }
}

basic.forever(function () {
    numero = randint(2, 30)
    basic.showNumber(numero)
    basic.pause(1000000)
})

Dicas:

  • O professor pode projetar o jogo em sala com micro:bit conectado via USB.
  • Pode ser feito em duplas para promover discussão.
  • É possível gamificar e montar um "ranking da turma".