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:
- Professor introduz o conceito de números primos, compostos e divisibilidade.
- Alunos discutem exemplos.
- Alunos jogam individualmente no micro:bit.
- Ao final, compartilham seus "scores".
- Roda de conversa sobre os erros mais comuns e os padrões percebidos.
Tutorial de Criação com Blocos:
- Criar uma variável chamada
score e outra contador. - Ao iniciar, defina
score = 0 e contador = 0. - Crie uma lista com os números de 2 a 30.
- Mostre um número aleatório da lista.
- Se o botão A for pressionado, verifique se o número é primo:
- Se sim, aumente
score em 1 e mostre ✔ - Senão, mostre
❌
- 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
❌
- Repita até
contador = 10 - 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".