最新消息:

Scratch实例8|四则运算练习程序

Scratch 少儿编程 5576浏览 0评论

友情提示:视频教程观看时请手动设置清晰度。

今天我们将完成一个小程序,使用它可以帮助小学生练习两位数的四则运算。

Scratch实例8|四则运算练习程序

 

00 软件分析

需求说明:

编写一个游戏程序,随机显示10以内的加减乘除法运算式,等待用户输入结果,如果玩家计算正确,则正确数加1;如果计算错误,则错误数加1。

 

需求分析:

  1. 需要一个角色,默认的小猫即可;
  2. 需要若干的变量,用来临时存储一次运算的数字和运算符,以此观之,至少需要三个变量,如,加数、运算符、被加数
  3. 提供玩家可以输入结果的地方,就像电脑或手机上常见的输入框
  4. 记录计算正确、错误的次数

 

01 添加角色

按照你自己的喜好,添加一个新的角色。并删除默认的小猫角色。

简单起见,这步演示省略,我使用默认的小黄猫~

02 调整角色的大小

将角色调整到合适的大小。

03 更换舞台背景

按照你自己的喜好,将默认的舞台背景替换成合适的背景图。

为了搭配学习的氛围,我选择了一个带黑板的教室背景图。

Scratch实例8|四则运算练习程序

04 角色的编码

1、新增变量和列表

Scratch实例8|四则运算练习程序

如图建立7个变量和1个列表,含义见图注,在此不过多解释,使用的时候它们的含义自然会清晰起来。

2、给列表赋值

给列表添加4个项,分别是+-×÷四个运算符。

键盘上本来就有加减符号,乘除法符号则不然,需要有些技巧才能输入,幸好现代输入法,比如搜狗输入法、Windows自带的输入法可以方便的输入这两个字符。

下面以我常用的Win10自带的输入法为例,进行演示

Scratch实例8|四则运算练习程序

有个简便的方法,那就是从本文刚才的文案中复制×÷,然后粘贴进Scratch列表的输入框。

3、变量初始化

首先,完成各变量的初始化,比如“正确”、“错误”次数在程序开始运行时归零。

接着,程序运行过程放到一个无限循环积木中。

然后,更为重要的,在每次循环的开始阶段,借助随机积木给四则运算中的两个数字和运算符赋值。注意思考“随机区间”,运算符是1~4,因为是四则运算,我们不准备增加高级运算;数字是1~10,因为需求提到10以内的计算,如果目标玩家是小学高年级,也可以把10调整为100,或更大的值。

Scratch实例8|四则运算练习程序

4、给变量【运算结果】赋值

预先算出计算结果,以便和玩家输入比较。

Scratch实例8|四则运算练习程序

5、给变量【算式】赋值

这个变量存储的是字符串,形如“2+3”,是为了方便后续拼接其他字符而创建的。

Scratch实例8|四则运算练习程序

6、等待玩家输入运算结果,并校验是否正确

要接收玩家的输入,可以使用【侦测】分类下的 [询问     并等待] 积木,在玩家输入内容并点击对号或键盘回车键之前,程序会一直等待不继续运行。

Scratch实例8|四则运算练习程序

在接收到玩家输入后,校验结果正确与否,即,判断玩家的运算结果和程序自己计算的结果是否一致。如果正确,得1分;如果错误,错误次数加1,并告知玩家正确的计算结果。为了引起玩家注意,我在错误的逻辑分支中增加了播放声音的功能,也就是,当你计算错误时,会听到一声猫叫。

代码如下:

Scratch实例8|四则运算练习程序

05 试运行

点击舞台左上角的小旗子运行程序,程序运行没有明显错误。

但请仔细观察下面的演示,当除法运算结果含有小数位时,如果不输入完整的小数位,结果将一直是错误的。于是,我们需要优化除法的逻辑。

Scratch实例8|四则运算练习程序

06 优化除法运算逻辑

修改除法运算,当余数除不尽时,只要求输入四舍五入后的2位小数,据此规则校验结果的正确性。

这个优化要求看似简单,实际操作时才发现了难点:Scratch没有提供【小数点后n位四舍五入】的积木,只有针对小数取整时的【四舍五入】积木。

那么,该怎么办呢?

是数学能力发挥作用的时候了!仔细思考“A除以B,结果保留2位小数”这句话,可以这样迂回的表达:将相除结果扩大100倍,然后四舍五入,最后缩小100倍。转化成积木的话,应如下:

Scratch实例8|四则运算练习程序

07 完工!运行程序

至此,我们完成了“需求说明”中的全部内容。

点击舞台左上角的小旗子运行程序,看看效果吧。

附加练习

  • 程序开始时,增加玩法说明和开始倒计时。(可参考《小白兔捡萝卜,第2版》第03部分)
  • 针对还没学过乘除法的小学低年级玩家,去掉乘除法的练习

  • 将计算错误的算术题保存下来,以便玩家复习。(提示:可以再建一个列表变量,将做错的题目存入其中)

您必须 登录 才能发表评论!