Primeiro passo: o projeto
O que é?
Um jogo de "batata quente" (ou pato quente) em grupo, via rádio.
Como funciona:
- Como o jogo Teleporte o pato, este também usa o rádio para "teleportar" um "pato" para outros micro:bits. Este jogo só funciona com 2 jogadores, pois envia a mesma mensagem a todos. Em breve você descobrirá que quase todos tinham um pato e qualquer um poderia teleportá-lo;
- Se houver mais de 2 jogadores, é necessário que cada micro:bit possua uma maneira de escolher qual jogador irá receber o pato. Assim, o programa de cada jogador terá um número de identificação (ID) exclusivo, começando pelo número 1;
- Armazenamos esta identificação em uma variável chamada ID, que você precisará alterar para 2, 3, 4 e assim por diante, para cada jogador — antes de instalar o programa nos micro:bits;
- Defina a variável players com o número de participantes, garantindo que todos tenham a chance de "pegar" o pato. Quando os micro:bits são ligados, o programa mostra o número de identificação do respectivo jogador no visor LED, para que cada um saiba o seu número;
- Para garantir que apenas o jogador que tem o pato possa se livrar dele, o programa só envia a mensagem quando você o sacode, se você tiver o pato. O programa controla isso usando uma variável booleana chamada hasDuck (temPato). Variáveis booleanas podem ter apenas dois valores: verdadeiro ou falso. No início, apenas o jogador 1 tem o pato, ninguém mais pode teleportá-lo;
- Quando o jogador 1 sacode seu micro:bit, o programa gera um número aleatório entre 1 e o número de jogadores. Se o número aleatório não for igual ao seu próprio número de identificação, o programa envia o novo número por rádio, limpa a tela e muda o valor da sua variável hasDuck para falso;
- Se o número aleatório for igual ao seu próprio ID, será preciso jogar novamente, mas isso é melhor que enviar o pato a si mesmo;
- Se o seu micro:bit receber um número, ele verifica se ele é igual (corresponde) ao seu número de identificação. Se sim, parabéns! Agora você tem o pato. Um pato aparece no visor LED e sua variável hasDuck é alterada para True, o que significa que agora você pode teleportá-lo para outra pessoa;
- Teleporte os patos de forma responsável: certifique-se de não deixar o seu micro:bit cair e não golpeie um amigo no meio da diversão.
Itens necessários:
- Três ou mais micro:bits;
- Editor MakeCode ou Python;
- Conjuntos de baterias (opcional);
- Um grupo de pessoas para brincar.
Segundo passo: é hora de programar
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
Terceiro passo: vamos deixar o código ainda melhor
- Mude o programa para enviar outras coisas em vez de patos;
- Na versão atual, se o programa escolher um número aleatório igual ao seu próprio número de identificação, será necessário agitar novamente. Modifique o programa para que isso nunca aconteça. Para isso, pode haver mais de uma maneira de fazer;
- O jogador 1 sempre tem o pato no início do jogo. Você conseguiria melhorar o programa para que o primeiro jogador com o pato seja escolhido aleatoriamente? Como você comunicaria isso ao micro:bit de cada jogador?
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.