概述
优化检测位置程序,防止“乱拧瞎蒙”的方法刷分。
模块清单
模块
其他设备
- USB数据线*1
- 传感器连接线*2
- 传感器外壳
- 乐高或其它固定结构
模块搭建
搭建
- 将模块和传感器组装起来:
- 将红色的核心模块,电池底座、OLED与绿色的扩展模块吸在一起;
- 将蜂鸣器连接在Hub的8/9管脚;
- 将旋转电位计连接在Hub的A0管脚。
- 将USB连接线一端插入电池底座,另一端连接电脑。
编程
编程思路
判断对齐成立以后,如果100毫秒后旋转电位计值无变化,则成功对齐,其他程序不变。
使用的程序块
开始编程
1、声明变量,存储数据
a变量用来存储随机数,a_random存储随机变化数,b存储文字移动范围,score变量用来储存分数,bingo变量用来存储数字对齐状态,hold变量用来存储对齐一瞬间旋转电位计的原始值。
2、 更改BINGO函数内容
如果判断到数字对齐,则将旋转电位计的值存入hold(这里用的是没经过换算的原始值,因为原始值比较精确),然后延时100毫秒之后如果旋转电位计的值等于hold(100毫秒内,旋转电位计没动过),则认为对齐,执行加分、响蜂鸣器程序。
3、开始函数和显示函数不需要做任何更改。
4、执行函数
最后执行每个函数就行了。
测试结果
上传成功后,OLED第一行显示一个与上次不同的随机数,第二行显示“1 2 3 4 5 6”, 第三行显示SCORE:0。旋转电位计“1 2 3 4 5 6”移动,当随机数与相应数字对齐时,并且保持旋转电位计100毫秒不动,第三行的分数增加,并且蜂鸣器响起。
Q:现在数字对齐后随机数才会改变,我想增加游戏难度,能隔一段时间,更换一次随机数,应该如何做呢?
A:当然可以,我们增加计时函数,如果超过一定时间,就重新生成随机数。
在生成随机数之后开始计时,计时超过3000毫秒时,蜂鸣器低音嘀、红灯闪烁一次、miss设为1(重新生成随机数)。
1、变量声明,存储数据
增加miss变量用来记录超时状态。
执行time_out函数(超时判断)。
2、更改start函数
如果bingo等于1或miss等于1(已超时),则执行重新生成随机数程序,miss变量清零,timer1计时器开始(重新计时)。
3、time_out函数内容。
如果timer1时间大于3秒(随机数已经生成3秒了,还没对齐数字),
则红灯闪烁一下、蜂鸣器发出一声低音嘀声。
miss变量设为1(通知start函数已超时)。
4、显示函数不需要更改。bingo函数不用改。
技术规范
相关案例
Q&A
|