概述
通过旋转“旋转电位计”将第二行的“1-6”6个数字和第一行随机生成的数字对齐(如果第一行随机生成数字2,则需要将第二行的2和第一行的2对应),对齐后蜂鸣器发出声音,Score+1。
分析
Bingo游戏机01中设置了b的变化范围是0-90。 根据图中的a,b值列出对应关系公式 :
a = (b+18) / 18简化为 a = b / 18+1
这样对齐的要求需要非常高,不能有一点点的偏差。难度会比较高。因此在可变区间在范围之内对齐就行。
Bingo游戏机01中设置了b的变化范围是0-90。我们通过一个算式来判断对齐的数字:对齐数字=(b+27)/18
模块清单
模块
其他设备
- USB数据线*1
- 传感器连接线*2
- 传感器外壳
- 乐高或其它固定结构
模块搭建
搭建
- 将模块和传感器组装起来:
- 将红色的核心模块,电池底座、OLED与绿色的扩展模块吸在一起;
- 将蜂鸣器连接在Hub的8/9管脚;
- 将旋转电位计连接在Hub的A0管脚。
- 将USB连接线一端插入电池底座,另一端连接电脑。
编程
编程思路
声明变量存数据,编写生成随机数的start函数,符合条件则生成一个随机数;编写屏幕显示的display函数,在屏幕上显示游戏界面;编写判断对齐的BINGO函数,对齐后加分并响起蜂鸣器。最后运行所有函数。
使用的程序块
开始编程
1、声明变量,存储数据
bingo变量用来存储数字对齐状态。
2、编写生成随机数的start函数,每次只随机一次
如果bingo变量为1(数字已对齐,可以重新生成随机数),则生成新随机数,bingo变量设为0。
3、编写屏幕显示的display函数
display函数没更改。
4、编写BINGO函数,数字对齐时计分蜂鸣器响
如果(b+27)/18等于a(数字已对齐),则将bingo设为1(通知start函数:数字已对齐),score加1(加分)、蜂鸣器发出嘀的一声。
5、执行函数
执行“start”、“display”和“BINGO”三个函数。
测试结果
上传成功后,OLED第一行显示一个随机数,第二行显示“1 2 3 4 5 6”, 第三行显示SCORE:0。旋转电位计“1 2 3 4 5 6”移动,当随机数与相应数字对齐时,第三行的分数增加,并且蜂鸣器响起。
Q:如果两次随机出的数字相同,就可以连续得分,这个似乎不太公平呢!
A:保证下次出现的随机数和上次不同。如果随机数与原来相同,就再随机一次,直到出现的随机数与上次不同为止。
需要新增加一个变量存储新生成的随机数(a_random),当之前随机数与新生成随机数相同,则重新生成随机数。否则将a_random的值存入a。BINGO、display函数保持不变。
编程
技术规范
相关案例
Q&A
|