资源简介 经典扫雷游戏项目第三讲: 递归调用一、 课程目标1、掌握递归算法,了解递归的思想,能够分析包含递归的程序的执行过程;2、熟练使用自制积木,能够使用递归算法进行自制积木的调用;3、完成扫雷中检测周围雷的数量,以及标记方块的功能。二、 课堂组织形式1、开放式问题讨论2、引导式思维发散3、问答式课堂互动4、针对问题探究实践5、学生动手制作项目6、课堂内容梳理巩固三、课堂准备编号 名称 内容 来源 备注【 1】 PPT 课件 课堂全流程演示文稿 火星科学盒官网【2】 课程资料 PPT 课件、讲义、视频 火星科学盒官网【 3】 教师参考程序 项目完整程序 网盘链接下载【4】 学生上课使用资料 笔记本电脑或者台式电脑 老师自备 电脑系统需求: win 10+,或 macOS 10.13+编程所需素材 网盘链接下载课堂报告 网盘链接下载【 5】 编程软件下载 scratch3.0 scratch 官网 课前下载安装四、主要脚本程序编号 详细内容 功能描述【 1】 “(列表)的第() 项” 使用列表的项目编号,获取列表中指定的某一 项【2】 “将(列表)的第( )项替换为 ()” 将列表的指定项替换为指定内容【 3】 “()不成立” 当填入的内容为真时,整个条件的值为假;当 填入的内容为假时,整个条件值为真五、上课流程本节课包括 5 步具体流程:(1)第 1 步为知识讲解。老师带领学生学习递归算法, 掌握递归的思想, 能够梳理包含递归的程序的执行过程。时长控制在 10 分 钟内。(2)第 2~3 步为作品编程。当被点击的方块处没有雷,且周围也没有雷时,需要编写程序,完成这个方块周围其他方块的检测。另外需要编程实现按下空格键时,使用小红旗标记方块或取消方块标记的功能。时长控制在 55 分钟内(3)第 4 步为拓展思考。 进一步学习递归思想,完成程序的梳理。时长控制在 15 分钟内。(4)第 5 步为课堂总结, 知识图谱的形式总结课程内容,巩固重点知识点 。时长控制在 5 分钟内。上课步骤 主要内容 备注【第 1 步】 知识讲解 【对应 PPT】“什么是递 归” 【时长】 10min 【讲解】 1. 使用“从前有座山”的故事来讲解什么是递归的思想; 2. 通过一组简单的程序讲解什么是递归算法; 3. 讲解递归必须有明确的终止条件的特点; 4. 总结什么是递归以及递归的特点; 5. 使用具体例子展示递归算法在scratch 中的应用, 带领学生分析程序的执行过程,得 出最后结果【第 2 步】 作品编程 【对应 PPT】“检测周围 方块” 【时长】 30min 【衔接】 上节课完成了检测被点击方块的状态, 并显示对应造型的功能。在被点击的方块处没有 雷, 并且周围雷的个数为 0 时, 应该继续检测周围的方块, 让周围方块都显示出来。接 下来就完成这个任务。 【讲解】 1. 带领学生分析,当空白方块被点击时,应该产生的效果是什么; 2. 讲解当空白方块被点击时,检测周围方块的过程; 3. 讲解检测被点击方块上方的方块时, 需要判断的条件, 以及满足条件时执行的结果; 【制作】学生编写程序, 实现当被点击方块处没有雷, 且周围也没有雷时, 检测它上方方块的功 能,之后运行程序观察效果(程序样例见“第六部分 - 程序 1-1”) 【讲解】 1. 老师带领学生分析程序的执行过程,进一步学习递归算法; 2. 带领学生分析检测当前方块周围的方块时,需要满足的条件是什么; 【制作】 学生编写程序,实现对周围方块的检测(程序样例见“第六部分 - 程序 1-2”) 【总结】 以提问的形式带领学生总结实现任务四的编程思路【第 3 步】 作品编程 【对应 PPT】“标记小红 旗” 【时长】 25min 【衔接】 鼠标点击方块后, 方块可能出现的效果已经全部完成了。除此之外, 在扫雷游戏中, 鼠 标右键点击方块后,方块位置会显示小红旗,表示此处有雷。在 scratch 中无法判断是 否按下了鼠标右键,所以使用空格键来实现。 【讲解】 1. 老师带领学生分析实现标记方块的功能时, 进行标记的方法是什么, 以及进行标记 和取消标记时,方块的造型变化; 2. 以提问的形式带领学生分析如何判断方块当前的造型, 以及如何实现方块造型的切换; 3. 根据分析的思路完成程序编写, 之后思考程序运行时可能会出现的问题以及解决方 案; 4. 讲解如何使用变量记录没有被发现的雷的数目 【制作】 学生编写程序, 完成使用空格键标记方块或取消标记的功能(程序样例见“第六部分 - 程序 2-1”) 【总结】 以提问的形式带领学生总结完成任务五的编程思路【第 4 步】 拓展思考 【对应 PPT】“思考与拓 展” 【时长】 15min 【讲解】 带领学生巩固递归在 scratch 编程中的应用,学生分析自制积木的调用过程, 完成题目。 此部分为课堂挑 战,根据课堂实 际情况完成【第 5 步】知识巩固 【对应 PPT】“总结与巩 固” 【时长】 5min 老师根据ppt 中的知识图谱回顾本节课的主要内容,带领学生完成知识总结六、主要程序说明任务四: 被点击方块及周围方块没有雷, 继续检测周围方块程序样例编号 程序样例与说明 对应的角色1-1 【方块】【程序 1-1 描述】 方块被点击后,如果方块处没有雷,就计算这 个方块周围的雷的个数,如果周围雷的个数为 0,就判断它是否 不在第一行,再判断它上方的方块是否被检测过。之后检测它上 方的方块。1-2 【方块】(【程序1-2描述】被检测方块上方的方块检测完成后,检测下方的方块,首先判断是否不在最后一行,之后判断是否被检测过,没有被检测过,则进行检测。【程序1-2描述】判断当前方块是否不在第一列,如果不在第一列,则判断左侧方块是否被检测过,如果没有检测过,检测当前)(方块左侧的方块;之后检测当前方块右侧的方块【程序1-2描述】当前方块不在第一行和第一列时,如果左上方方块没有被检测过,就检测左上方方块;当前方块不在第一行和最后一列时,如果右上方方块没有被检测过,就检测右上方方块。)【程序 1-2 描述】 当前方块不在最后一行和第一列时,如果左下 方方块没有被检测过,就检测左下方方块; 当前方块不在最后一 行和最后一列时,如果右下方方块没有被检测过,就检测右下方 方块。任务五: 按下空格键对方块进行标记,或取消已添加的标记程序样例编号 程序样例与说明 对应的角色2-1 【方块】【程序 2-1 描述】 产生克隆体后, 将变量“未发现的雷数”的值设 为“雷的总数”。当在方块处按下一次空格键时, 切换方块的造型。 如果当前是造型 9, 那么切换成造型 10, 表示标记方块, 将变量的 值减 1。否则的话, 如果是造型 10, 就切换成造型 9, 表示取消标 记,将变量的值增加 1。(共47张PPT)经典扫雷游戏递归调用什么是递归思考与拓展检测周围方块小红旗标记总结与巩国什么是递归1从前有座山从前有座出,山里有座庙,庙里有个老和尚,老和尚在给小和尚讲故事从前有座山山里有座庙庙里有个老和尚老和尚在给小和尚讲故事从前有座山山里有座庙庙里有个老和尚老和尚在给小和尚讲故事从前有座山山里有座庙庙里有个老和尚老和尚在给小和尚讲故事从前有座山山里有座庙庙里有个老和尚老和尚在给小和尚讲故事从前有座山从前有座山山里有座庙庙里有个老和尚老和尚在给小和尚讲故事在故事中提到了同样的故事在程序中调用了同样的程序调用调用自己调用①②③④100989799...递归调用递归程序中的函数在执行时,直接或间接的调用自己的现象调用终止条件从前有座出,山里有座庙,庙里有个老和尚,老和尚在给小和尚讲故事从前有座山山里有座庙庙里有个老和尚老和尚在给小和尚讲故事从前有座山山里有座庙庙里有个老和尚老和尚在给小和尚讲故事从前有座山山里有座庙庙里有个老和尚老和尚在给小和尚讲故事从前有座山山里有座庙庙里有个老和尚老和尚在给小和尚讲故事终止条件终止条件递归递归必须有明确的终止条件没有终止条件时永远执行满足终止条件时停止执行递归总结递归:程序中的函数在执行时,直接或间接的调用自己的现象必须为递归指定明确的终止条件函数A函数A函数A函数A调用调用调用递归应用运行程序后,变量“数字结果”的值是多少?①计算10:“数字结果”增加9→19②计算9:“数字结果”增加8→27③计算8:“数字结果”增加7→34④计算7:“数字结果”增加6→40⑤计算6:“数字结果”增加5→45⑥计算5:“数字结果”增加4→49⑦计算4:“数字结果”增加3→52⑧计算3:“数字结果”增加2→54⑨计算2:“数字结果”增加1→55⑩计算1:“数字结果”增加0→55检测周围方块2任务四任务四:被点击方块及周围方块没有雷,继续检测周围方块空白方块被点击被点击的方块及周围没有雷继续检则局围的8个方块继续检测周围是“造型9“的方块一直到外侧都是周围有雷的方块一直到外侧都是周围有雷的方块检测方块方块被点击是否有雷?周围是否有雷?检测周围方块检测被点击方块检测周围的方块否否检测周围方块检测周围的方块⑤ ① ⑥③ ④⑦ ② ⑧检测①②③④⑤⑥⑦⑧这8个位置的方块填入待检测的方块的编号检测是否有雷检测被点击方块的上方方块:需要满足的条件:被点击的方块上方有方块:不在第一行上方的方块没有被检测过:上方方块显示示“造型9”“执行的操作:检测被点击方块上方的方块:上方方块的编号检测上方方块Step1:检测被点击方块上方的方块检测上方方块运行测试,观察出现的效果检测上方方块被点击的方块:86①周围没有雷②检测上方方块被点击的方块:86①②385470周围没有雷周围没有雷周围没有雷周围没有雷③④递归的使用使用了递归的算法!终止条件:被检测的方块周围有雷!检测周围方块检测周围的方块:需判断的条件:这个位置是否有方块这个方块是否被检测过试一试:编写程序,当被检测的方块及它周围方块没有雷时,继续检测周围的方块可以复制“计算雷的数目”脚本,修改参数完成检测周围方块Step2:检测被点击方块下方的方块判断是否不在最后一行判断是否被检测过检测当前方块下方的方块检测周围方块Step2:检测左侧、右侧的方块判断是否不在最后一列判断是否被检测过检测当前方块右侧的方块判断是否不在第一列判断是否被检测过检测当前方块左侧的方块检测周围方块Step2:检测左上、右上的方块判断是否既不在第一行也不在最后一列判断是否被检测过检测当前方块右上方的方块判断是否既不在第一行也不在第一列判断是否被检测过检测当前方块左上方的方块检测周围方块Step2:检测左下、右下的方块是否既不在最后一行也不在第一列判断是否被检测过检测当前方块左下方的方块是否既不在最后一行也不在最后一列判断是否被检测过检测当前方块右下方的方块任务总结1.需要满足哪些条件,才能检测当前方块右上方的方块?2.编程实现检测当前方块周围的方块时,使用的算法是:①当前方块处没有雷,且周围也没有雷②当前方块的右上方有方块:既不在第一行也不在最后一列③当前方块右上方的方块没有被检测过递归小红旗标记3任务五任务五:按下空格键,使用小红旗标记有雷的位置标记小红旗使用小红旗标记有雷的位置:进行标记的方法:进行标记的结果:①添加标记:从“造型9”切换成“造型10”②取消标记:从“造型10”切换成“造型9”进行标记②如何切换方块的造型?①如何判断方块当前的造型是什么?②如何切换方块的造型?是造型9?切换成造型10是造型10?切换成造型9是是否进行标记运行时会出现什么问题标记小红旗按下一次空格时,造型不止切换一次等待空格键抬起未发现的雷数①方格被标记,数字减1②取消方格标记,数字增加1未被标记的雷的个数未发现的雷数②如何切换方块的造型?新建变量存储未被发现的雷的个数变量初始值:雷的总数方块被标记时:变量的值减1取消方块标记时:变量的值加1编程任务·试一试:编写程序,实现按下空格键时对方块进行标记和取消标记的功能标记方块Step1:按下空格键标记方块变量初始值等于雷的总数在方块处按下空格键时等待空格键抬起如果显示“造型9”切换到“造型10"变量减1如果显示“造型10°切换到“造型9%变量加1任务总结简述实现按下空格键对方块进行标记或取消标记的过程:①标记(取消标记)方块的操作:②通过列表项内容判断当前的造型③黄换列表项内容使方块切换成对应造型④改变变量“未发现的雷数”的值思考与拓展4递归的应用运行程序后,角色“说”的内容是什么?递归的应用②如何切换方块的造型?结果的初始值:5①计算5→结果=5×5=25;计算4②计算4→结果=25×4=100;计算3③计算3→结果=100×3=300;计算2④计算2→结果=300×2=600;计算1⑤计算1→说“结果”:600总结与巩固5 展开更多...... 收起↑ 资源列表 第3.docx 第3节-递归调用.pptx