少儿编程|Scratch实例7:打字练习程序
发布时间:2023-08-31 10:11:00 作者:青少儿编程KidProgram 浏览量:716
我们已经一起完成了几个小游戏,编程作品除了可以带来娱乐,还可以寓教于乐。今天我们将完成一个键盘练习程序,帮助刚刚接触电脑的朋友快速熟悉键盘,熟悉字母在键盘上的布局。
需求说明:
完成一个键盘打击练习的程序,屏幕上随机出现26个字母,敲击键盘,相应的字母消失。击中字母得一分,字母自行消失前如果未被击中,不得分。控制打字练习的时长,比如练习十分钟后程序自行结束。最好程序开始时难度偏低,随着时间增加,难度也逐渐增加。
需求分析:
上面的实现方式,类似于以前我们的作品《小白兔捡蘑菇》(←点击查看),通过使用“克隆”技术,只需要一个角色就能实现26个不同字母所需的功能。当然,大家要知道的是,除了上面的实现方式之外,还可以创建26个角色,每个角色对应一个字母,即一个角色只有一个造型,另外,可以想象的出来,每个角色几乎具有完全相同的代码逻辑,这种方式在思考上很容易,只是实现上显得粗笨。
但是,条条大路通罗马,只要能实现原始需求,使用什么方法编码其实并不十分重要。如果你觉得克隆难以理解,就试试第二个方法吧。
Scratch角色库中已经有了几种样式的英文字母,简单起见,我们演示时就选用第一种,当然,你可以试试其他样式的字母。
如上操作,直到添加完所有的26个字母。
调整角色大小的方法有两种:1、使用外观积木,2、在角色编辑区修改属性。
因为还没开始编码,所以我们使用方法2暂时调整。
按照各自的喜好,将默认的舞台背景替换成合适的背景图。
我就选个炫酷的宇宙背景吧~我选好了,你随意
先确保是在对角色(而不是背景)进行编码:选中字母角色,点击切换到【代码】卡片。
程序启动后设置角色大小、隐藏角色本体、每个n秒创建一个字母角色的克隆体。
当作为克隆体启动时,从舞台顶部出现匀速往底部落下。
克隆体到达舞台底部时,消失。看下面的代码局部放大图:
克隆体监听键盘字母键,如果和当前造型一致,则克隆体消失。
代码局部放大
创建【得分】变量,程序开始时,初始化为0;击中字母时,得分加1。
按照上面字母a的逻辑,添加剩下的字母。注意下图中的两处,需要根据造型编号id进行修改:
因为我暂时只添加ABC三个字母的逻辑,所以,我修改“更换积木造型”的逻辑,让造型只在ABC三个字母之间切换,如下。以便于验证:
[换成 (在 1 和 3 之间取随机数) 造型]
程序运行正常。
上面的字母编码已经可以正确运行,但就如你实际操作的那样,一共有26个字母,就会有26段相似的逻辑,这样重复的编码太缺乏美感了~~
我在一开始构思编码设计的时候,就想着要好好利用“侦测积木”中的 <> ,可它的参数只能是a~z之类键盘上的标识,但我们又没有办法从造型中得到a~z,而是只能到到造型的id和造型的名字,所以这个方式不能直接使用,于是就有了上面的编码方式。
可是经过再次思考,我发现,也许可以修改造型的名字,以便更加便捷的使用造型。
切换到角色的【造型】选项卡,选中一个字母造型,在右侧修改造型名称,使得它和自己所代表的字母一直,如A字母的造型名就是a或者A。
以此类推,修改26个字母
下面是修改前后对比的代码。你会发现,代码简洁了很多
新建三个变量:出现频率、难度、倒计时。
出现频率的初始值是2,含义是2秒,即间隔2秒出现一个新的字母。在程序运行5分钟后( < (计时器) > 300 > ),出现频率被修改成1.5;在程序运行8分钟后( < (计时器) > 480 > ),出现频率被修改成1。
难度的初始值是低,含义是当前当前练习处在低难度的状态,它只是显示用的,没有参与计算或逻辑处理。
倒计时的初始值是600,含义是600秒,即10分钟,也就是程序只运行10分钟。我没有真的给这个变量设置初始值,而是在无限循环体内,不停的给它赋新值,简单点处理可以这样 ( 600 - (计时器) ),我不希望看到秒的小数位,所以在外面加上“运算”积木“四舍五入” (四舍五入 ( 600 - (计时器) ) ) ,用以去掉小数位。
另外,注意变量前面选择框的勾选,控制你希望哪些变量显示在舞台上。
至此,我们完成了“需求说明”中的全部内容。
点击舞台左上角的小旗子运行程序,看看效果吧。
tag:#Scratch编程、#少儿编程、#儿童编程、#趣味编程、#青少年编程、#软件编程
收藏