三、反应测试

第14课 随机时间随机灯反应

任务场景:随机时间随机灯反应
任务场景:随机时间随机灯反应

一、任务目标

随机等 1~2 秒后,随机点亮 L1 或 L2,并记下亮灯时刻。体验题到此为止,还不等按键、不相减。

二、我们要学什么

  • 学习要点:随机两件事:等待 1~2 秒,以及亮 L1 还是 L2;亮灯后记下亮灯时刻
  • 本课过关:每次亮哪盏灯、亮之前等多久都不固定;能指出亮灯时刻是在灯亮之后才记下的。
  • 示例对齐:体验题对应 3-3-1 随机时间随机灯反应.mix;完整代码对应 3-3-2 等待用户输入.mix。

三、本节要点

本节抓住「先随机再亮灯」。体验 3-3-1 在记下亮灯时刻后立刻进入下一轮;等按键、相减在完整代码 3-3-2 和第 15 课。

1读场景明确真实任务
2对要点随机等待再亮灯
3载入运行本课积木/代码

四、解题思路

  • 输入:随机数(等待时长、灯号)。
  • 输出:板载指示灯 随机点亮。
  • 生活对照:发令时机不确定,防止抢跑。
  • 验证现象:每次亮灯前等待长短不同,且 L1/L2 哪盏亮也不固定。

本课主要用到:指示灯(setonoff)、随机数、系统运行时间。

  1. 1明确任务「随机时间随机灯反应」:要观察的输入/输出主要是 板载指示灯、板载按键。
  2. 2用「重复执行」搭出主循环,让程序一直运行,而不是只执行一次就结束。
  3. 3随机等 1~2 秒,再按随机灯号点亮 L1 或 L2。
  4. 4灯亮之后才写入「亮灯时刻」。
  5. 5体验题到此进入下一轮;等按键和相减在完整代码 3-3-2/第 15 课。
  6. 6载入后先看哪盏灯亮、等多久,不要指望本课体验算出用时。

流程示意(可对照左侧文字)

任务:随机时间随机灯…搭出主循环,让程序一直运行…加入延时(约(random…把计算结果映射到可观察输出…用系统时间或定时器记录时刻…

五、图形块功能讲解

本课用到的 Mixly 图形块均已在前面的课讲过。请直接对照编程练习搭积木;若有遗忘,回到该积木首次出现的课页复习。

六、知识点讲解

本课核心是随机发令:随机等多久、随机亮哪盏。体验程序记下亮灯时刻后就进入下一轮,还没有「等到按下再相减」。

随机等待

每次亮灯前等 1~2 秒不等(以示例为准)。人无法预判发令时刻,就不能靠倒数抢跑。

亮灯时刻

灯亮之后才写入「亮灯时刻」。体验题没有「按下时刻」和相减;那两步在 3-3-2/第 15 课接上。

随机哪一盏灯

randint(1, 2) 决定亮 L1 还是 L2。体验题只亮灯,还不判断有没有按对。

  • 每次运行,亮灯前的等待应能看出长短不同,且哪盏灯亮也不固定。
  • 过关:能口述「随机的是等待和灯号;亮灯时刻是灯亮之后才记的」。

分清随机等待和反应计时后,下一课把对错和用时显示出来。

七、编程练习

点「载入」打开 MixVM(board=mixgo_zero_design)。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读自学精讲与解题思路,再点载入。

3-3-1 随机时间随机灯反应.mix。载入后运行。

八、课堂练习

先完成两道判断题,再完成选择题;全部选定后点「检查」。

  1. 判断:本课体验程序已经完成「等到按下并算出反应时间」。

  2. 判断:随机改变的是提示出现前的等待时长,其目的是降低抢跑。

  3. 本课中「随机」主要作用在哪一段?

  4. 体验程序记下亮灯时刻之后立刻下一轮,这时还缺哪一步?

九、本节小结

记住:随机的是等待和灯号;体验题记下亮灯时刻后还不等按键。