数学思维|少儿编程scratch中是如何学习数学的?
2019-12-08 11:07
这周在课程当中有这样一个环节,制作一个闯关游戏,这节课的目的是学习如何设置关卡,如何用鼠标控制小球的运动,如何设定闯关的成功机制等。
这其中其实隐藏了一个非常常见的数学问题,学完了这个课程,我相信以后相类似的数学题目大家都会很容易理解了。
首先,我们来看小效果:当按下鼠标球往上移动,当松开鼠标球往下移动,关卡是一个开口火圈,小球碰到火圈就反弹回原来的初始位置,当通过火圈则进入下一关。
一、分析理解题意
1、对于火圈角色
他需要不停的转动。2、对于小球角色
首先,要有触发机制,这里指的是鼠标按下和松开。其次,小球不能碰到火圈,碰到就要回到起始点。最后,也是最重要的,小球要向上穿过火圈才能过关。二、分析和分拆问题
三、寻找解决途径编程实现
1、火圈角色
根据上面分析得知角色几个关键词:转动、不停的。所以可以使用以下代码实现:
2、小球角色
首先,根据第一个判断条件,只需要判断是否碰到火圈,碰到之后就执行一个动作,没有碰到就不执行,这里可以使用如果……那么……其次,根据第二判断条件,我们发现,这里跟第一个不一样,第一个判断我们小球只需要判断有没有碰到火圈,碰到火圈执行一个操作,没有碰到就继续向上运动,也就是不执行相关操作;而这里无论成立还是不成立都需要执行一个操作,同时,鼠标只有两种状态,按下或者松开。所以这里可以用如果……那么……否则
最后,就是重点了
按下鼠标,向上运动,所以是Y坐标增加
松开鼠标,向下运动,所以是Y坐标减小
那么增加和减少多少呢?
为什么增加和减小的数值不一样?我们来看下面的流程图,我增加了一个坐标值之和来阐述,并把坐标数值改成了红色字体:
如果按下不松开,Y坐标一直增加,球一直往上跑如果松开不按下,Y坐标一直减小,球一直往下掉如果按下鼠标,Y坐标增加5,松开鼠标,Y坐标减小5,那么球是不是在原地不动呢?所以这里,我们总结一下规律:球最终是要往上跑的,所以我们需要往上跑的比向下掉的多一点,只有这样才可以。
通过下面的流程图,我们仔细品味一下!
现在,我们大胆的做一个假设,如果我将“Y坐标”这个概念换成鸡蛋,并且做这样的假设:
有一个空的篮子,小明每次往里面放5个鸡蛋,小红每次从篮子拿出3个鸡蛋,问两轮之后,篮子里面有多少鸡蛋?答案是4个。
如果小红每次拿出5个鸡蛋呢?
答案是0个。
看到这里,会不会有人想到了我们小学的数学题?
一个容积是30立方米的水池,它的进水管每小时能装进水10立方米,出水管每小时放水5立方米,请问,如果进水管和出水管同时开启,需要多少小时能把水池放满?
这里跟小球的运动是不是一个道理呢?
说到这里,很多家长估计发现编程对于孩子数学的帮助了,通过游戏化的引入,让孩子在学习、理解、分拆、解决、调试程序的过程中,以另外一种方法学习到学科知识,这种方法不枯燥、不填鸭、不灌输,而是真真切切的理解。--end--
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com