“Bingo游戏机02”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
(创建页面,内容为“{| style="width: 1000px;" |- | ==概述== 600px|center 通过旋转“旋转电位计”将第二行的“1-6”6个数字和第...”)
 
开始编程
第83行: 第83行:
 
<br>
 
<br>
 
display函数没更改。
 
display函数没更改。
[[File:mixly-ctrl-Bingo game 1-code2.jpg|600px|center]]
+
[[File:mixly-ctrl-Bingo game 2-code2.jpg|600px|center]]
 
<br>
 
<br>
 
'''4、编写BINGO函数,数字对齐时计分蜂鸣器响'''
 
'''4、编写BINGO函数,数字对齐时计分蜂鸣器响'''

2016年10月25日 (二) 07:33的版本

概述

通过旋转“旋转电位计”将第二行的“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

模块清单

模块

模块 数量 功能
mCookie-Core 1 核心板
电池盒 1 程序下载和供电模块
mCookie-Hub 1 传感器转接板
mCookie-OLED 1 显示
电位器 1 检测旋转
Buzzer 1 发声

其他设备

  • 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函数保持不变。


编程

技术规范

相关案例

Bingo游戏机01 Bingo游戏机03 Bingo游戏机04 Bingo游戏机05

Q&A