UpyCraft-micropython:microbit之石头剪刀布
之前发表了一篇microbit通过radio通信的帖子:https://www.dfrobot.com.cn/commun ... =1&extra=#pid101712现在,我们可以根据radio做实现一些简单的玩法啦!
石头剪刀布是我们童年时候经常玩的一种游戏,现在我想在microbit上实现。这样可以保证游戏的公平,不必担心谁先谁后造成的作弊现象 0.0
首先,我们需要准备的工具:
硬件:
Micro:bit主板 X2
数据线(或3.3V电池)X2
软件:UpyCraft-Micropython
操作:
2个micro:bit主板分别接电源,把程序分别现在到2个microbit,设置Defaule run,然后重新上电就可运行
代码:
from microbit import *
import radio
def judge(host,slave):
if host == 1 and slave == 2:
return 1
elif host == 2 and slave == 3:
return 1
elif host == 3 and slave == 1:
return 1
elif host == slave:
return 2
else:
return 0
radio.config(length=64,channel=7,group=200)
rock = Image("09090:90909:09090:90909:09090")
scissor = Image("99009:99090:00900:99090:99009")
paper = Image("99999:90009:90009:90009:99999")
image =
radio.on()
i = 0
while True:
i = i%3
if i == 0:
display.show(image)
elif i == 1:
display.show(image)
elif i == 2:
display.show(image)
if button_b.was_pressed():
i = i+1
if button_a.was_pressed():
radio.send(str(i))
msg = radio.receive()
while msg == None:
msg = radio.receive()
result = judge(i,int(msg))
if result == 0:
display.scroll("lose")
elif result == 1:
display.scroll("win")
elif result == 2:
display.scroll("tie")解析:
第1行到第2行:导入所需的包
第4行到第14行:定义一个判断函数,平局返回2,赢了返回1,输了返回0
第16行:配置radio
第17行到第21行:编写石头剪刀布的图形,并将这些图形存放于image列表中
第23行:打开radio
第24行:定义i,做为列表下标及通信内容
第25行:while循环,一直执行26行到46行的内容
第26行到第32行:对i取模,是i一直在0到2之间循环,0为石头,1为剪刀,2为布,判断i的值,并显示对应的图形
第33行到第34行:判断按键a是否按下,如果按下,则加1,代表图形切换。
第35行到第46行:判断按键b是否按下,若按下,则将i的值通过radio发送。发送完,等待接收,直到接收到数据后,通过第4行的函数判断胜负
执行结果:
实物图:
欢迎大家加入uPyCraft-micropython QQ群:619558168
页:
[1]