一、疯狂打地鼠

第2课 打地鼠-等待用户按键输入

任务场景:打地鼠-等待用户按键输入
任务场景:打地鼠-等待用户按键输入

一、任务目标

理解等待输入,能说出为什么必须用内层循环等按键。

二、我们要学什么

  • 学习要点:先亮灯,再用内层循环等到按键,而不是靠延时碰运气
  • 本课过关:能指出体验只等 3号引脚;完整代码亮灯编号 1 等 3号引脚、编号 2 等 4号引脚。
  • 示例对齐:体验题对应 「1-2-1 打地鼠-等待用户按键输入」;完整代码对应 「1-2-2 打地鼠-等待用户正确按键」。

三、本节要点

内层 while 一直查按键,为真才 break。体验没有随机灯号。

1读场景明确真实任务
2对要点亮灯后等待按键
3载入运行兴趣课程积木/代码

四、解题思路

  • 输入:体验用 3 号脚。完整代码:3 号脚对 1 号灯、4 号脚对 2 号灯。
  • 输出:对应板载灯亮灭。
  • 生活对照:地鼠冒出来,打中才消失。
  • 验证现象:灯亮后不按会一直亮;按下才灭并停 1 秒。

本课主要用到:外接按键、板载灯、延时。

  1. 1点亮目标灯。
  2. 2内层循环等到对应按键。
  3. 3灭灯后延时约 1 秒。
  4. 4完整代码先随机选 1 号或 2 号。

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

点亮目标灯内层循环等到对应按键灭灯后延时约 1 秒完整代码先随机选1 号或 2 号

五、图形块功能讲解

下面只列出本课首次出现的 Mixly 图形块(真积木截图)。已在前面课讲过的不再重复;先认新块,再点「载入」对照拖搭。

图形块分类作用本课用法
赋值
变量给变量写入新值。完整代码:亮灯编号 = randint(1,2)。
随机数
数学在指定范围内随机取整数或小数。完整代码随机 1 或 2。
取变量
变量读取变量当前值。用亮灯编号去点灯、灭灯。
比较
逻辑比较两个值(大于/等于/小于等),得到真或假。完整代码:编号==1 则等 3号引脚。

六、知识点讲解

等待输入:灯已经亮了,内层循环直到按键才 break。体验:固定亮 1 号,只查 3号引脚。完整代码:随机灯号,按错侧会一直等。延时:灭灯后的 1 秒是回合间隔,不是用来「等到按键」。

对照与过关:能说出为什么必须用内层循环等按键。先弄清本课输入与输出,再进编程练习对照现象。

七、编程练习

点「载入」打开 MixVM(board=mini_design)。本学期外设课会自动导入对应外接模块到右侧仿真;默认图形化积木,起步程序与积木来自兴趣课程/学期5。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。

兴趣课程:1-2-1 打地鼠-等待用户按键输入.mix。载入后运行。

八、课堂练习

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

  1. 判断:体验程序会随机点亮 1 号或 2 号灯。

  2. 判断:灯亮之后,要用内层循环等到按键,而不是只靠 延时。

  3. 体验等到的是哪一个输入?

  4. 完整代码亮灯编号为 2 时应等?

九、本节小结

本课主题是打地鼠等待:先亮灯,再用内层循环等到按键,而不是靠延时碰运气。体验程序亮灯后只等3号引脚;完整程序亮1号灯等3号引脚、亮2号灯等4号引脚。