记忆大考验
这篇文章会使用“数组”积木,建立两组灯号数据,搭配“函数”、“变数”、“点亮”、“计次循环”和“逻辑判断”等积木,在 micro:bit 实作一个找出光点出现在哪个位置的记忆大考验游戏。
游戏方式
贪记忆大考验是一款简单的小游戏,游戏开始时,画面中会出现随机的三个光点,两秒后会消失,两秒内用户需要记住这三个光点的位置,光点消失后,用户开始找出光点的正确位置,如果有找到 ( 位置正确 ) 则得分,没找到 ( 位置错误 ) 则游戏结束。
如果使用 micro:bit 实作,游戏操作步骤如下:
- 同时按下 AB 按钮,开始游戏,画面中出现三个光点。
- 两秒后光点消失
- 按下 B 按钮,会出现一个光点让用户移动。
- 按下 A 按钮,会记录用户移动的光点的“位置”,或取消该位置。
- 位置都纪录完毕后,按下 AB 按钮,如果三个光点位置正确,得分增加 1,并开始下一题。
- 如果位置错误,显示得分,游戏结束 ( 按下 AB 按钮可以重新开始 )。
积木程序原理
一开始设计按下 A+B 按钮让游戏开始的程序:
- 当启动时,设定 run 变数为 0。
- 当按钮 A+B 被按下时:
- 判断如果 run 是否等于 0。
- 如果 run 等于 0,设定 run 为 1、score ( 分数 ) 设定为 0,answer ( 答案 ) 设定为 0。
参考“依序点灯 ( 数字函数 )”文章,建立一个“点灯函数”。
接着建立“产生三个光点”的题目程序:
- 新增一个重复无限次积木。
- 判断如果 run 等于 1 就执行程序。
- 清空画面 ( 清空后续用户选择的光点 )
- 建立 list 和 user_list 两个空数组,list 纪录自动产生的光点位置,user_list 纪录用户选择的光点位置。
- 使用“重复 25 次”循环,将两个空数组变成有 25 个项目的数组。
- 参考“随机不重复的灯”文章,产生三个随机不重复的光点。
- 产生光点后,暂停 2000 毫秒。
- 清空画面。
- 将 run 设定为 2,让用户可以选择光点位置。
编辑“按下 B 按钮”可以“移动光点”的程序:
- 判断如果 run 等于 2,按下 B 按钮才有作用。
- 放入计次循环,次数设定 0~24 次,显示用户纪录的光点位置。
- 接着透过 answer 变数的更改,做出按下 B 按钮,画面光点就移动的效果 ( 参考“按钮依序开关灯” )。
编辑“按下 A 按钮”可以“纪录光点位置”的程序:
- 判断如果 run 等于 2,按下 A 按钮才有作用。
- 判断如果用户数组 user_list 指定项目 ( 光点位置 ) 的数值,如果等于 1 就让其等于 0 ( 如果亮灯状态就熄灯 ),如果等于 0 就让其等于 1 ( 如果是熄灯状态就亮灯 )。
最后回到“按下 A+B 按钮”,新增 run 等于 2 的判断:
- 使用计次循环,次数 0~24 次:
- 比对 list 的每个项目内容和 user_list 的每个项目内容
- 如果有一个内容不相同 ( 表示用户记错了 ),将 run 等于 0,游戏结束,显示得分。
- 接着判断如果 run 仍然等于 2,表示用户答对了,将 run 设为 1,继续下一题,得分加 1。
完成后,启动 micro:bit,就能开始进行记忆大考验的游戏。
范例解答
范例解答:记忆大考验
实作“贪吃蛇”的小技巧
要做出这个范例,需要先阅读哪些文章?
可以先阅读“依序点灯 ( 数字函数 )”和“按钮依序开关灯”两篇文章。
为什么要使用“两个”数组呢?
因为对于游戏的程序来说,让数组互相比对数值,是相当容易且不容易出错的,所以才会使用题目一个数组,用户一个数组,互相比对。
微信扫码关注
抖音扫码关注