Passo 1: Faz tu mesmo
O que é isto?
Usa rádio no jogo de grupo da "batata quente" - ou do pato quente!

Como é que funciona
- O receptor mostra as leituras do acelerómetro no ecrã de LEDs. Este jogo só funciona com 2 jogadores porque envia a mesma mensagem para todos - depressa aconteceria que vários tinham um pato e poderiam atirá-lo ao mesmo tempo.
 - Se forem mais de 2 jogadores, cada micro:bit precisa de ter uma maneira de escolher qual o jogador que vai receber o pato, por isso cada jogador tem um número de ID único, começando com o 1.
 - Guardamos este valor numa variável chamada ID, e terás de mudar este número para 2, 3, 4, etc. no código dos outros jogadores antes de descarregares o programa para os micro:bits deles.
 - Muda a variável players (jogadores) com o número total de pessoas que vão jogar, de maneira a todos terem oportunidade de receber o pato. Quando os micro:bits são ligados, o programa mostra o número de ID do respetivo jogador no ecrã de LEDs de forma a que cada um saiba o seu número.
 - Para garantir que só quem tem o pato é que o pode enviar, quando abanas o micro:bit o programa só envia uma mensagem if (se) tu tiveres o pato. O programa controla isto usando uma variável Booleana chamada hasDuck. Variáveis booleanas só podem ter dois valores: Verdadeiro ou Falso. No início só o jogador 1 é que tem o pato, mais ninguém o pode lançar.
 - Quando o jogador 1 abana o micro:bit, o programa gera um número aleatório entre 1 e o número total de jogadores. Se o número aleatório é diferente do seu próprio número de ID, o micro:bit envia o novo ID por rádio, limpa o ecrã e define a variável hasDuck para Falso.
 - Se o número aleatório é igual ao seu próprio ID, a jogadora vai precisar de lançar de novo, mas isso é melhor do que o pato ser enviado para ela - e de se perder no hiperespaço!
 - Se o teu micro:bit receber um número, verifica se é igual (corresponde) ao teu número de ID. Se isso acontecer, agora tens o pato! Parabéns! Um pato aparece no teu ecrã de LEDs, e a tua variável hasDuck é definida como Verdadeira, o que quer dizer que agora podes lançar o pato para outra pessoa.
 - Por favor, envia o pato de forma responsável: certifica-te de que não perdes o micro:bit ou que não chocas com um amigo com o entusiasmo do jogo.
 
Do que é que precisas
- 3 ou mais micro:bits
 - Editor MakeCode ou Python
 - suporte de pilhas (opcional)
 - um grupo de pessoas com quem jogar
 
Passo 2: Cria o teu código
1from microbit import *
2import radio
3import random
4
5radio.config(group=42)
6players = 3
7ID = 3
8display.show(ID)
9if ID == 1:
10    hasDuck = True
11else:
12    hasDuck = False
13radio.on()
14
15while True:
16    message = radio.receive()
17    if accelerometer.was_gesture('shake'):
18        if hasDuck:
19            sendTo = random.randint(1, players)
20            if sendTo != ID:
21                display.clear()
22                radio.send(str(sendTo))
23    if message:
24        if message == str(ID):
25            hasDuck = True
26            display.show(Image.DUCK)
27        else:
28            hasDuck = False
29    Passo 3: Melhora-o
- Muda o programa para enviar outras coisas em vez de patos.
 - Se a dada altura ele escolher um número aleatório igual ao teu número de identificação, tens de sacudi-lo outra vez. Altera o programa para que isto nunca aconteça. Talvez haja mais do que uma maneira de fazer isso.
 - No início do jogo, o Jogador 1 tem sempreo pato. Será que consegues melhorar o programa de maneira a que o primeiro jogador com o pato seja escolhido aleatoriamente? Como é que comunicarias isso com o micro:bit de cada jogador?
 
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.


