【超详细Scratch教学课件分享】可暂停倒计时

您好,感谢您一直对少儿编程、对“与非学堂”的关注。为了更好地为大家服务,诚邀您填写一份《关于少儿编程教与学的课件资源素材需求调查》,https://www.wjx.cn/jq/82398684.aspx。

图片

问卷二维码

 

 

本篇内容在与非学堂公众号2020年9月1日首发。

 

全世界的少儿编程老师,Unite!

 

ʕ•̫͡•ʔ❤ʕ•̫͡•ʔ可暂停倒计时ʕ•̫͡•ʔ❤ʕ•̫͡•ʔ

 

课件属性分析(每项数值最高都为10):

  • 难易度-4(适用于掌握循环、条件、简单变量等概念基础的孩子)

  • 趣味性-4(不是特别有趣,中偏下)

  • 讲授性-7(需要老师比较多的讲解,学生听讲理解、接受)

  • 启发性-6(使用了5次关键的选择题,3次关键的问答题)

 

故事背景:

小熊的编程水平提高了不少,他想要在之前做的简单倒计时的基础上,增加一个功能:倒计时进行过程中,可以按下空格键让计时暂停,再次按下空格键计时又可继续,在时间到之前,可以重复暂停和继续这一操作。

 

作品效果要求:

设计一个倒计时,可以从9开始倒计时,数字每秒减小1,显示0时,播放铃声,并且在倒计时过程中,按下空格键时,如果正在进行,则计时暂停,如果按下时已经暂停了,则计时继续。

 

课堂教学流程:

找回我们之前已经完成的简单倒计时:【超详细Scratch教学课件分享】简单倒计时

大家跟着曹老师已经做好数字角色的造型和代码了,是这样的:

 

现在我们要完成:在倒计时过程中,按下空格键时,如果正在进行,则计时暂停,如果已经暂停,则计时继续。

 

要完成这个功能,该从哪里入手呢?

 

很多同学想,这简单啊!直接拖动代码块:来一个“当按下空格键”吧!

可是,有了这个代码块,它的下面要拼接什么代码呢?

 

怎么才能做到,按一下暂停,再按一下继续,继续时按一下又会暂停,再按一下又继续……

 

(请同学们先回答这个问题后继续后面的内容)

空格键这一个按键,对应了几个功能?

A. 1个

B. 2个

C. 3个

D. 无数个

 

从功能上来讲,一个空格键对应了2个功能:即暂停计时和继续计时,无论重复多少次,功能还是一样的。

 

那么问题又来了,(请同学们直接回答)这两个功能我们应该使用一个“当按下空格键”呢?还是应该使用两个,每一个功能分别写在一个下面啊?

 

回答“两个”的同学,可能对咱们程序中,两个相同的“当……”代码块有什么误解。如果有两个相同的事件代码块,程序运行时,它不是任选其中之一执行的,而是都要同时执行的,所以我们把这种用法叫做“并行”,意思是说在需要让一个角色一边做一件事情,一边做另一件事情时,可以这样做。

 

而我们这里,不是要让计时一边要暂停,一边又要继续啊!我们是要让它在进行时能暂停,在暂停时才能继续。

 

所以应该选择在一个“当按下空格键”下面编写代码。

 

问题是,怎么编写,才能保证在计时进行时,让它暂停,暂停时又能让它继续呢?

 

(请同学们先回答这个问题后继续后面的内容)

我们之前学的什么编程概念,可以让程序在不同情况下进行不同的操作啊?

A. 循环

B. 条件

C. 变量

D. 顺序

 

对了,条件可以做到。不过条件代码块一般要在“如果”后面放一个“六边形”的代码块,表示“判断的标准”。那我们这时应该把这个条件判断的标准设置为什么呢?

 

让我们仔细分析刚才的任务:在计时进行时,让它暂停,暂停时又能让它继续。看到了吧,这里已经明确告诉我们条件判断的标准了,就是按下空格时,如果计时正在进行,这时可以暂停;而如果计时已经暂停,那么这时可以继续。

 

可是正当我们满心欢喜,以为可以试着在“如果”后面填上“计时正在进行”这样的判断标准时,却发现Scratch中根本没有这样的“六边形”代码块:“侦测”代码组里没有,其他代码组里,也没找到。

 

拿什么来表示这种“计时正在进行”或“计时已经暂停”的状态呢?

 

可能有的同学对“状态”这个词难以理解。其实状态就是一个东西的呈现出来的样子。比如说一辆车,正在飞驰,那我们可以说它的状态是“运动的”。再比如说一件衣服,弄脏了,那我们也可以说它的状态是“脏的”。

 

那这里我们计时正在进行或暂停,也可以说计时在“进行的状态”或“暂停的状态”。

 

问题是怎么在程序中表示这种状态呢?计算机里知道计时是什么状态,它也跟人差不多,是需要记的。

 

(请同学们先回答这个问题后继续后面的内容)

用哪个编程概念,可以让计算机记住计时的状态呢?

A. 循环

B. 条件

C. 变量

 

大家这里知道了,我们用Scratch编程时,凡是计算机要记住的,都应该给它创建“变量”才能记住。变量里存放的是一条一条可能发生变化的信息。

 

现在,我们可以动手操作了。

 

先给程序创建一个变量,叫什么呢?因为我们是要存计时到底是“进行中”还是“已暂停”的,所以就叫“计时状态”吧!

 

(练习时间)

 

那有了这个“计时状态”变量怎么用呢?

 

别着急,一步一步来。我们在小绿旗一单击时,需要让计时开始,所以要把这个状态改为“进行”。

 

现在到了最关键的时刻:怎么表示按下空格时,计时暂停,再次按下,计时继续?

 

其实有了“计时状态”这个变量,一切都好说了。因为我们可以对“计时状态”进行操作了。

 

我们在这个“当按下空格键”代码块下面,就可以这样了:

 

在如果后面,对“计时状态”是否等于“进行”进行判断,如果是的话,就把“计时状态”设为“暂停”,反之则把“计时状态”设为“进行”就可以了。判断变量和某一个值是否相等,需要用到“运算”代码组中的“A=B”,完成后如下:

 

(练习时间)

 

 

编写好了这个代码,我们就可以试试效果了!

 

可以看到,在运行起来后,按下空格,可以让变量“计时状态”的值,在“进行”和“暂停”之间切换了。

 

事情到这里,才刚进行到一半呢!

 

因为我们的目标是让倒计时真正暂停和继续啊,而不是在这里看到这个变量的值在“进行”和“暂停”之间切换。

 

但是,既然已经有了这个变量,说明我们离最终目标也不远了!

 

怎么把这个变量用起来,是个好问题!下面这个分析值得大家当成一个套路,记住!

 

因为很多同学会想到,实现今天课程的效果,肯定要用到变量,但是怎么用,是个大问题!

 

其实大家要回到咱们一开始实现倒计时的方式,是怎么做的?用的“重复执行9次”,对不对?9次结束就开始播放声音了。

 

为什么可以用“重复执行9次”?因为简单的倒计时,就是从9倒数到0,重复换9次造型,就完事儿了。

 

可以用空格键控制的倒计时呢?

 

大家想一想,暂停时,程序本身的时间应该继续吧?应该。程序的时间在小绿旗开始后,就会一直顺向计时了,它跟咱们编程要完成的倒计时9、8、7……0,是不同的。注意区分。

 

而程序本身的时间在流淌时,我们随时又可能会按下空格键,恢复计时功能,对不对?就是说咱们计时的代码,要不要执行,是有条件的,需要根据刚才我们设置的“计时状态”这一变量来判断。

 

(请同学们先回答这个问题后继续后面的内容)

要让计时换造型的代码,根据“计时状态”这一变量取不同值时,作相应的改变,应该用什么编程的概念?

A. 循环

B. 变量

C. 条件

 

因一个东西的不同,另一个东西也不同,这是典型的按条件执行。所以我们使用“条件”来编程。

 

而刚才还有一个词“随时”。这个又该怎么办呢?

 

(请同学们先回答这个问题后继续后面的内容)

要实现计时状态“随时”改变,都能做出相应的改变,需要使用另一个什么编程概念?

 

A. 循环

B. 条件

C. 顺序

D. 变量

 

只有把“条件”判断放到“循环”里,才能保证“随时”都能判断“计时状态”的值。并且这种“随时”还不知道是几秒以后,还是几天以后的意思。(请同学们直接回答)这样的话,我们如果使用固定次数的循环,行吗?


不能使用固定次数的循环,而应该选用:无限循环。因此现在我们把代码块这样写好:

 

(练习时间)

 

这个重复执行一会儿是要放到刚才“当小绿旗单击”的最后面的。

 

大家看,现在还没有填满啊,如果里面要写什么?

 

计时状态=进行,当然就要继续执行之前正常的倒计时了。

 

大家说,“否则”里面要做什么?(请同学们直接回答)

 

“否则”里面什么都不需要做。因此,我们可以把“否则”这一分支去掉。

(练习时间)

 

这下我们可以运行起来看效果了!暂停继续功能正常了。

 

BUT……大家发现什么问题了吗?

 

我们的程序,因为使用了一个“重复执行”,导致到了数字0的时候,停不下来了,又会回到9开始重复计时。这是因为Scratch的“下一个造型”代码块,如果已经到最后一个了,会直接让换回第一个。

 

有什么方法能让程序在造型换到数字0的时候,就马上停止,不再重复了呢?

 

有方法。循环除了固定次数的循环、无限次数的循环外,还有一种,叫做带条件的循环

带条件的循环,会重复做一个事情,直到条件满足时停止,然后程序会继续它下面拼接的代码块。

 

于是我们需要为循环找好一个停止的条件。那就是造型是最后一个,数字0的时候。

 

在“外观”代码组里,找到“造型编号”(倒数第三个),用“A=B”比较运算:

 

设置好这个条件之后,我们把之前“播放声音……”的代码块,放到“重复执行直到……”的下面就可以了。现在完整的代码块是这样的:

点击运行,一切OK!

 

(练习时间)

 

到这里我们这个“具有暂停继续功能的倒计时”程序,就圆满完工了!

 

知识技巧总结:

  1. 对事件、并行的复习与再理解

  2. 对条件的深入理解

  3. 掌握使用变量表示程序状态的用法

  4. 对循环的深入理解,掌握“固定次数的循环”“无限次数的循环”和“带条件的循环”的区别和联系

 

课后作业:

请同学们完成让一个小球角色(直径50像素左右,y为0)在舞台上x为-200到200的范围来回慢慢移动。

 

 

 

 

 

 

 

 

与非学堂(codingclassonline)

一个专注青少年信息技术教育,探讨少儿编程的教与学,交流技巧、分享资源的公众号。

--------------------------------------

 

【课件分享】

【超详细Scratch教学课件分享】简单倒计时

 

 

【往期每日一题】

  1. 蓝桥杯青少组选拔赛STEMA考试样题及解析(科技素养及逻辑思维)

  2. 【Scratch竞赛每日一题】五彩三角形

  3. 【Scratch竞赛每日一题】旋转问题

  4. 【Scratch竞赛每日一题】雷电猴与宝箱

  5. 【Scratch竞赛每日一题】海狸的语言

  6. 【Scratch竞赛每日一题】加减大师

  7. 【Scratch竞赛每日一题】限时猜数字

  8. 【Scratch竞赛每日一题】蹦床游戏

  9. 【Scratch竞赛每日一题】来回蹓跶的小猫

  10. 【Scratch竞赛每日一题】小猫回城堡

  11. 【Scratch竞赛每日一题】薛定谔的猫累了

  12. 【Scratch竞赛每日一题】小猫狐狸赛跑

  13. 【Scratch竞赛每日一题】循环变大小

  14. 【Scratch竞赛每日一题】循环画画

  15. 【Scratch竞赛每日一题】坐标和反弹

  16. 【Scratch竞赛每日一题】北极熊快长大

  17. 【Scratch竞赛每日一题】移动与反弹

  18. 【Scratch竞赛每日一题】巧用图章

  19. 【Scratch竞赛每日一题】画线判断

  20. 【Scratch竞赛每日一题】循环变量

  21. 【Scratch竞赛每日一题】小猫克隆

  22. 【Scratch竞赛每日一题】小法师的穿墙术

  23. 【Scratch竞赛每日一题】随机数

  24. 【Scratch竞赛每日一题】小猫拿苹果

 

 

 

 

 

【近期考竞通知】

  1. 蓝桥杯青少组选拔赛 报名开始

  2. 8月编程竞赛汇总,Python、Scratch都有

  3. 2020年第二场NCT全国青少年编程能力等级测试即将启动

  4. 青少年编程能力等级测评(CPA)2020年第二季开始报名

 

 

 

【高赞原创集锦】

  1. 半部论语治天下,一段Scratch懂论语

  2. 好书推荐:《CODE》

  3. 编程却被我妈一直说成玩游戏,我该咋办?

  4. 【免费快领】Scratch编程秘籍PDF

  5. 就《从计算机世界出发窥探中西文明的差异》的补充

  6. 为什么精心制作的少儿编程课程观看的人不多?

  7. 零基础孩子的第一节Scratch课,应该学什么?

  8. Scratch晋级Python,一路要打通哪些关?

  9. 一名合格的程序员,如何让 林有有 = 没有

  10. 这些东西,比光让孩子学编程重要100倍

  11. 这位同学,Scratch代码里可不能填这么大的数字哦!

  12. 玩转Scratch,炮弹击中目标有多难?

  13. 【长文慎入】从计算机世界出发窥探中西文明的差异

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值