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.