资讯内容
第11课 二百club——计时器和散点图
第11课 二百club——计时器和散点图
任务导航
在数字科学家的小圈子里面,有一个叫200俱乐部(200club)的精英团体,加入的标准是30秒内可以按200次空格。之所以成立这个俱乐部,是因为许多电脑游戏中涉及到每分钟电子次数这个概念,一分钟内按键的次数越多,说明按键速度越快,对攻时就越占优势。
本课,我们首先设计一个程序来测定一分钟内按空格的次数,并使用Excel对数据进行分析,观察按键时间随次数变化的规律,如图11.1所示,然后再编写一个程序看看谁可以加入200俱乐部。

图11.1 测定按键速度
Follow Me
1. 制作简单的测定按键速度的程序
(1)确定按键速度软件的目标
想一想
请同学们思考并填写测定按键速度软件的初级目标、中级目标和高级目标(见表11.1)。同时想一想,完成每个目标需要建立那些变量,核心算法又是怎样的?
表11.1 测定按键速度软件的目标
中级目标 |
|
初级目标 |
|
高级目标 |
|
(2)设计界面及编写代码
第1步:建立“按键次数”变量。
第2步:在侦测菜单中勾选计时器

,可以在舞台上显示一个秒表,使用脚本块

,可以使秒表归零。
第3步:编写代码。完成这个研究,最简单的代码如图11.2所示。

图11.2按键速度的研究
第4步:测试一分钟内的按键次数。单击绿旗,计时器归零的同时,变量“按键次数”也归零,此时开始按空格键。当舞台上的

到达60的时候停止按键,此时变量“按键次数”的数值,就是测试者60秒内按下空格键的次数,用60秒除以按键次数就是按键速度。
想一想
- 这个程序可以做那些改进?你打算优先做那个改进,为什么?
- 与你的同学交流一下改进的意见,分析一下大家的改进意见,思考一下一般都从几个角度思考如何改进。
- 多次实验,看看你的按键速度是否是一个基本不变的数。
- 按键速度可能受那些因素的影响呢?
DIY
按键速度指的是1分钟内能够完成的“按下-弹起”这个动作的次数。而图11.1所示的程序如果一直按着空格键不放,按键次数会一直不断增加。如果不解决这个问题,就难以保证测量的准确性,你能想个办法,攻克这个难关么?
2. 改进程序
(1)增加链表以提高程序的精确度
上述程序中,仅靠眼睛来判断计时器达到60秒时停止按键是不够准确的。我们可以通过新建一个链表“时间”,记录每次按下空格键的时间,这样可以更加精确地统计1分钟按键的次数。如图11.3中,链表的最后两次按下空格键的时间已经超过了60秒,就应该删掉。测试者1分钟按键的次数应为335次。

图11.3 用链表提高按键计数计量的精确度
参照图11.4中所示的代码,编写脚本。

图11.4 用链表来记录实验过程
(2)使用Excel分析数据
在链表上右击,选择“输出”,将扩展名由txt修改为xls,打开导出的Excel文件,将链表中的数据导入到Excel中。在Excel中,选中“时间/秒”这一列的所有数据,插入散点图,可以看到时间随次数的变化可以近似地看作是一条过原点的直线,如图11.5所示。如何理解这条直线呢?通过这条直线你能够近似地估计出这位同学要按100次空格需要多长时间?200次空格需要多长时间,根据实验数据请你先判断一下,你能够加入200次俱乐部么?
![]() ![]() |
图11.5 用Excel绘制时间随次数变化的散点图 |
DIY
设计一个判断人是否加入了200次俱乐部的程序,将图11.4所示的代码做如图11.6所示的改进,就可以制作一个简单的研究工具判断谁能够加入200俱乐部,一般五年级的学生中100个当中只有三五个学生可以加入,快快挑战一下吧。

图11.6 200club检测程序
想一想
- 有些同学分析了1分钟的数据发现,前30秒完成了178次按键,后30秒只完成了157次按键,他们猜测这样的数据是由于实验者疲劳造成的,请你设计一个实验计划,找几位合作研究者,验证一下他的猜想。
- 根据按键速度的研究数据,你还有那些猜想?
- 按键速度的研究软件还有那些地方需要改进?
知识着陆
- 脚本:
- 编程习惯:在软件编写的过程中,如何进行技术攻关
- 数字科学素养:如何根据数据提出问题,进行猜想,实验验证。
创作天地
- 一位同学将图11.4所示的代码作了如下简化,如图11.7所示,你觉得这样做好么?
![]() |
图11.7 用链表的长度来记录次数 |
2.一位同学错误地把图11.4的程序中,计时器归零的代码放错了位置,得到了图11.8右侧的链表,老师看了后却夸奖他,说从链表的第二项开始,数据都非常有意义。思考一下这是为什么?
![]() ![]() |
图11.8 计时器归零代码的特殊用法 |
- 一位同学发现将第二项减第一项作为第二次按空格的反应时间,以此类推,第二次以后的反应时间都明显小于第一次的反应时间,如图11.9所示,请你帮他分析一下可能的原因。
![]() ![]() |
图11.9 数据的初始误差 |
3.请试图用图11.10提示的两个代码改进程序,使计数在60秒后自动停止。
![]() |
图11.10 使按键计数在60秒后自动停止 |
4.一位同学在采集数据的过程中偷懒休息了一小会儿,然后累了,请别的同学替他按空格,但是这些细节显示在了图11.11所示的图象中,说说这是为什么?
|
图11.11 使用散点图发现数据细节 |
- 有的同学认为,上午反应时间应该比刚吃过午饭的时候反应速度快,你能够帮他设计一个实验计划么?
- 一位同学研究了食指和小指同样按键次数所消耗的时间,得到图11.12,你能根据图11.12帮他得出结论么?
|
图11.11 食指和小指同样按键次数所消耗的时间 |
6.对同一组数据,一位同学除了画出了时间随次数的变化图,还画出了次数岁时间的变化图,如图11.13所示,你能说出这两幅图的联系么?
|
图11.13 次数与时间的关系图 |
- 将本课的数据写成一个实验报告。
- 探究一个因素对按键速度的影响。
视野拓展
在Scratch的例子的Sensors and Motors当中介绍了Scratch的传感器板的使用方法,如图11.14所示

图11.14 Scratch传感器板介绍
请你察看一下侦测菜单中的传感器模块的功能如图11.15所示,你会发现传感器板的功能还比较强大,可以侦测距离、按键、音量、光照等等信息。

图11.15 Scratch传感器板的功能介绍
如果你想了解更多关于传感器板的知识,你可以登录http://scratch.mit.edu/users/towujunjie,进入传感器板专区,相信你会很有收获。

- 和

- ,如果…否则…结构