随机不重复的灯
这篇文章会延伸“依序点灯 ( 数字函数 )”文章,将文章中的“函数”,搭配“数组”、“变数”、“重复...判断”、“点亮”积木,让 micro:bit 显示随机且不重复的 LED 灯。
积木程序原理
参考“依序点灯 ( 数字函数 )”文章,打开使用函数点灯的范例,打开后,因为只需要用到“函数”的部分,所以将“当启动时”以及“重复无限次”的积木删除。
放入“当按钮 A 被按下”的积木,在按下 A 按钮时,建立一个名为 list 的空数组 ( 先拉出 list 数组积木,再将空数组放入 )。
接着使用“重复 25 次”,将数组变成为具有 25 个项目的数组,每个项目值设定为 0。
有了 25 个项目的数组后,就能借由数组的特性,产生不重复的随机数 ( 范例会产生 3 个随机数 ):
- 新增变数 n,默认数值 0 ( 作为重复循环的停止条件使用 )
- 新增“重复...判断”循环,判断 n<3 时就不断重复。
- 每次重复时,建立 a 变数,数值为 0~24 的随机数。
- 判断数组 list 的 a 项目,如果数值等于 0,就将该项目变更为 1。
- 如果满足条件,就将 n 增加 1。
- 如果不满足条件 ( list 的 a 项目等于 1,表示这个数字重复 ),就继续重复循环。
最后在按下 A 按钮时,清空画面,并于上面的逻辑判断里,加入“呼叫函数”积木,就能点亮随机不重复的灯。
完成后,启动 micro:bit,每次按下 A 按钮,就会出现随机不重复的三个灯。
范例解答
范例解答:随机不重复的灯
微信扫码关注
抖音扫码关注