提问

用micro:bit做剪刀石头布的游戏

电子制作  / 倒序浏览   © 著作权归作者本人所有

#楼主# 2018-1-22

跳转到指定楼层


相信大家都玩过石头剪刀布的游戏,这个看似很公平的游戏其实存在两种致命缺陷,就是出手时的快慢和作弊!我们知道,BBC Micro:bit自带蓝牙功能,不同的Micro:bit间可通过蓝牙进行数据的传输。今天,我们就要利用Micro:bit的蓝牙功能来制作石头剪刀布的游戏,通过看不见不摸着的蓝牙信号来传输大家出的是石头、剪刀还是布,完全杜绝了石头剪刀布游戏中的作弊行为。

目的:
通过本文的学习,初步掌握micro:bit蓝牙功能的使用,包含group ID的设置、数据发送、数据接收。

任务要求:
1、按A按钮选择石头、剪刀或者布。
2、按B按钮确认我们的选择,同时,把我们的选择通过蓝牙发送给对方。
3、假如我们完成了选择,并且也接受到了对方发送来的蓝牙信号,Micro:bit就判断胜负,并且在屏幕上显示。

配置清单:
Micro:bit   ×2
USB线     ×2

编程:
1步:
设置蓝牙分组,这里我们设置成13,只有两块Micro:bit的分组设置相同才能进行蓝牙通讯。用变量button来作为确认按钮(B按钮)按下标志位,0为未按下,1为按下。
用变量recevied来作为接收蓝牙信号标志位,0为未接收,1为未接收。
用变量item来保存我们的出拳状态,0表示石头,1表示剪刀,2表示布。


2步:
设置A按钮的功能,每按一次,图形就会按顺序变化一次。
我们用图形file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps7E3C.tmp.jpg来表示石头,用图形file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps7E3D.tmp.jpg来表示剪刀,用图形file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps7E4E.tmp.jpg来表示布。


3步:
设置B按钮的功能,通过蓝牙信号,把我们的出拳状态(也就是item变量)发送出去。同时把确认状态位置1


4步:
设置蓝牙接收,把接收到的数据保存在变量receiveNumber中,同时把接收完成状态位置1

5步:
while循环中判断,一旦我方和对方都出拳了,就开始比较胜负,用file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps7E62.tmp.jpg表示胜利,用file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps7E63.tmp.jpg表示失败,用file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps7E64.tmp.jpg表示平局。


接下来,我们就把代码下载到micro:bit中看看效果吧。


你可以通过下方的页面直接下载程序:
https://makecode.microbit.org/_e7q0bcMVXAuX

思考:
如果我想随机出石头、剪刀或者布,该如何修改程序?

关键词:
Microbit、分歧、石头、剪刀、布、蓝牙、通讯



转播转播 分享淘帖
回复

使用道具

成为第一个回答人

B Color Link Quote Code Smilies
Archiver|手机版|小黑屋|MakerTime 创客时代  
Powered by Discuz! X3.3  © 2001-2017 Comsenz Inc.