师:同学们,今天我们继续深入学习 Scratch 程序设计第 15 课——趣味猜灯谜,重点学习键盘信息的获取及侦测。猜灯谜是我国传统节日活动,如果能设计一个互动小程序和大家一起玩,那该多好。一起来看,“脱了红袍子,是个白胖子,去了白胖子,剩个黑丸子”,打一水果。是苹果吗?试试看,让我重新输入答案。看来不对,那么难道是荔枝?
生:(可能有的学生发出声音或有相应反应)
师:太棒了,答对了。事不宜迟,跟着老师一起设计。要设计好猜灯谜小程序,得想清楚这三个问题:一、怎样告诉计算机你的猜测?二、计算机如何判断你的猜测?三、怎样知道猜对了没?首先,怎样告诉计算机你的猜测?请看老师演示。键盘信息的输入与记录,打开趣味猜灯谜文件编写程序,实现键盘输入灯谜答案的程序效果。单击灯谜角色,单击侦测选项,添加“询问并等待”积木并修改内容为“请输入正确答案”,勾选“回答”。单击绿旗,在弹出的对话框中输入信息,如“荔枝”,单击确认,或者按一下回车键。同学们看到了吗?计算机是这样获取你的猜测的。它使用侦测主积木区的“询问并等待”积木获取你的回答并记录在“回答”积木中。“询问并等待”积木用于询问问题。当程序运行时,弹出一个对话框,等待键盘输入信息,在弹出的对话框中输入信息后,按回车键,输入的信息会暂存在“回答”积木中。勾选“回答”,回答的内容会显示在舞台的左上角。那么计算机又是如何判断你的猜测呢?看一下流程图片段,它先询问你的猜测,获取键盘输入的答案后,判断你的回答是否正确。如果回答正确,它会提示你正确,否则提示你错误。那么对应的 Scratch 程序应该怎么写呢?我们一起分析一下流程图。它先询问你的猜测,获取键盘输入的答案后,判断回答是否正确。如果回答正确,那么提示你正确,否则提示你错误。同学们发现了没?“如果……那么……否则”,没错,就是这个控制主积木区的“如果……那么……否则”积木。对应的 Scratch 程序是不是已经浮现在大家脑海里了呢?一起来看一看。但是“如果”后面的判断条件又应该如何写呢?可能有些同学已经找到方法了,通过前面的学习,我们可以从积木区找到对应的积木,一起来找一找吧。找到了运算组积木区的六边形等号积木。等号积木用于判断等号左右两边的内容是否相等,比如把“回答”积木拖动到等号积木的左边,示例文本输入到等号积木的右边,这样就形成了可供判断的条件表达式。Scratch 程序就可以写成这样。眼尖的同学也许会提醒老师,“如果……那么……否则”这个程序块还不完整,这就是我们要探讨的第三个问题,怎样知道猜对了没?它会提示你,那计算机怎么提示的呢?回想上几节课学习的外观组积木区学了“说几秒”等积木。脑海里想一想缺失的程序是否已经补上了?一起来看一看,Scratch 程序就可以写成这样。跟着老师一起做。条件的判断与反馈。按照如下步骤编写程序,实现判断灯谜答案对错并进行反馈的程序效果。单击控制选项添加“如果……那么……否则”积木。单击运算选项,添加等于运算积木。单击侦测选项,添加“回答”积木到等于的左边,并在等于的右边输入正确答案“荔枝”。单击外观添加“说 2 秒”积木并修改内容为“恭喜你,答对了”。添加“说 2 秒”积木,并修改内容为“对不起,你答错了”。单击绿旗。在弹出的对话框中输入信息“荔枝”后单击确认。单击绿旗。在弹出的对话框中输入信息“苹果”后单击确认。同学们,还有一个积木和“如果……那么……否则”积木很相似,它是“如果……那么”积木,它们之间有什么异同呢?大家想一想。简单来说,这两个积木都是控制积木,使用条件表达式进行判断,在条件成立时执行“如果”框内的程序块。不同点是什么呢?“如果……那么……否则”积木在条件不成立时执行“否则”框内的程序块,就像猜灯谜程序,猜错了还会提示你错误。而“如果……那么”积木在条件不成立时不执行。接下来请同学动手试一试,巩固所学。续写任务一的程序,实现切换灯谜题目造型,然后询问答案,并对答案进行对错判断和反馈。再询问 3 道题,如图所示。如何才能提升编写程序的效率呢?老师提示大家一个小技巧,一起来看一看。因为要再询问 3 道题,所以可以复制任务一中已经完成的积木块 3 次。分别调整相应的参数,最后依次连接在一起,请看老师的演示。单击三角按钮,切换小舞台布局,右键复制积木块,拖动到右边,方便对照。单击造型,下拉按钮,选择“灯谜题二”项,双击等号的右边,修改内容为灯谜题 2 的答案“同甘共苦”。拖动积木块连接过来,依此类推。继续右键复制积木块,拖动到右边,单击造型,下拉按钮,选择“灯谜题三”项。双击等号的右边,修改内容为灯谜题 3 的答案“老舍”。拖动积木块连接过来,继续右键复制积木块拖动到右边,单击造型,下拉按钮,选择“灯谜题四”项,双击等号的右边,修改内容为灯谜题 4 的答案“赤壁之战”。拖动积木块连接过来。单击外观选项,添加“说 2 秒”积木,并修改内容为“答题结束”。添加“将造型切换为”积木。单击造型,下拉按钮,选择“灯谜题背景”项。单击三角按钮,退出小舞台布局。单击绿旗。在对话框中输入“荔枝”后单击确认。在对话框中输入“同甘共苦”后单击确认。在对话框中输入“老舍”后单击确认。在对话框中输入“赤壁之战”后单击确认。刚才我们一起设计了最基本的猜灯谜小程序。但是生活中的猜灯谜不止这么简单,一起进入综合提升挑战吧。综合运用条件控制结构编写趣味猜灯谜程序。根据实际情况设计不同的对错反馈方式及答题机会。可以使用外观组的其他积木进行对错的反馈,也可以给猜谜人两次、不限次数或指定次数答题机会。参考程序稍后公布,请同学们动手尝试后再看。我们一起看一下参考程序,两次答题机会的参考程序,如果第一次答题错误,那么还要再询问一次。所以可以复制已经实现询问功能的积木块连接到第一个“否则”框内“对不起,你答错了”的下一句即可。同样的道理可以推导出不限次数答题机会的参考程序,只需要在“否则”框内“对不起,你答错了”的下一句,添加“询问并等待”积木,但是要配合使用“停止全部”积木来中断答题。而指定次数答题机会则还需要运用一些调试的技巧,才能找到“询问并等待”积木的合适位置。同学们,经过这节课的学习,我们会用“询问并等待”积木告诉计算机我们的猜测并记录在“回答”积木中,实现了对键盘信息的侦测和获取。我们会设置条件表达式并组合使用“如果……那么……否则”积木或“如果……那么”积木帮助计算机判断我们的猜测,实现了对键盘信息的判断。我们会用“说几秒”等积木告诉我们猜对了没,实现了对键盘信息的反馈。当然,能实现这几类功能的积木还有很多,这就需要同学们不停地探索发现了。好了,同学们,这节课就上到这里,期待下次再见。
