第 1 步:制作
这是什么?
使用无线电进行的hot potato团体游戏或 hot duck !
工作原理
- 就像传送鸭子游戏一样,它使用无线电在micro:bits之间发送“鸭子”。 该游戏只能有2位玩家,因为它会向所有人发送相同的消息-很快你就会发现几乎每个人都有一只“鸭子”,任何人都可以发出一只“鸭子”。
- 如果有2位以上的玩家,那么每个micro:bit都需要有一种方法来选择哪个玩家将获得鸭子,因此每个玩家的程序都有一个唯一的ID,从1开始。
- 我们将其储存在一个变量中,变量名为ID。您需要在将程序下载到每个玩家的micro:bit上之前,将其ID更改为2 、3、4...。
- 设置 players 变量为参与游戏的人数,以确保每个人都有机会得到鸭子。 该程序会在开始时在LED显示屏上显示玩家ID号,以便您知道各人的编号。
- 为确保只有拥有鸭子的玩家才能将其抛出,仅当您有鸭子的时候,摇动Microbit时它才会发送讯息。 它使用Boolean变量对此进行追踪,变量名为hasDuck。 Boolean变量只能有两个值:True或False。 游戏开始时,只有玩家1拥有鸭子,没有其他人可以抛鸭子。
- 当玩家1摇动其micro:bit时,程序将产生一个介于1和玩家总数量之间的随机数。 如果随机数不等于她自己的ID,则它将通过无线电发送新的ID,清除她的屏幕并将她的hasDuck变数设置为False。
- 如果随机数等于她自己的ID,则她需要再次抛出,但这比鸭子被发送给自己更好-并在多维空间中迷路!
- 如果您的micro:bit接收到一个数字,它会检查该数字是否等于(匹配)您的ID号。 如果相等的话,恭喜,您现在有了鸭子! 鸭子会出现在您的LED显示屏上,并且您的hasDuck变量将被设置为True,这意味着您现在可以将鸭子抛给其他人了。
- 请负责任地抛鸭子:确保您在玩这款游戏时不会使micro:bit掉落或撞到朋友。
所需材料
- 3个以上的micro:bit主板
- MakeCode 或者 Python 编辑器
- 电池盒(选配)
- 一群一起玩游戏的人
第 2 步:编程
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
第 3 步:完善它
- 更改程序以发送其他物品而不是ducks。
- 目前,如果它选择的随机数与您自己的ID相同,则您必须重新摇一摇。 修改程序以便永远不会发生这种情况。 可能有不止一种方式来实现。
- 玩家 1 总是 在游戏开始的时候拥有duck. 您能否改进程序,以便随机选择第一个拥有鸭子的玩家? 您将如何与其它玩家的micro:bit通讯?
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.