資源簡介 經(jīng)典掃雷游戲項目第三講: 遞歸調(diào)用一、 課程目標(biāo)1、掌握遞歸算法,了解遞歸的思想,能夠分析包含遞歸的程序的執(zhí)行過程;2、熟練使用自制積木,能夠使用遞歸算法進(jìn)行自制積木的調(diào)用;3、完成掃雷中檢測周圍雷的數(shù)量,以及標(biāo)記方塊的功能。二、 課堂組織形式1、開放式問題討論2、引導(dǎo)式思維發(fā)散3、問答式課堂互動4、針對問題探究實踐5、學(xué)生動手制作項目6、課堂內(nèi)容梳理鞏固三、課堂準(zhǔn)備編號 名稱 內(nèi)容 來源 備注【 1】 PPT 課件 課堂全流程演示文稿 火星科學(xué)盒官網(wǎng)【2】 課程資料 PPT 課件、講義、視頻 火星科學(xué)盒官網(wǎng)【 3】 教師參考程序 項目完整程序 網(wǎng)盤鏈接下載【4】 學(xué)生上課使用資料 筆記本電腦或者臺式電腦 老師自備 電腦系統(tǒng)需求: win 10+,或 macOS 10.13+編程所需素材 網(wǎng)盤鏈接下載課堂報告 網(wǎng)盤鏈接下載【 5】 編程軟件下載 scratch3.0 scratch 官網(wǎng) 課前下載安裝四、主要腳本程序編號 詳細(xì)內(nèi)容 功能描述【 1】 “(列表)的第() 項” 使用列表的項目編號,獲取列表中指定的某一 項【2】 “將(列表)的第( )項替換為 ()” 將列表的指定項替換為指定內(nèi)容【 3】 “()不成立” 當(dāng)填入的內(nèi)容為真時,整個條件的值為假;當(dāng) 填入的內(nèi)容為假時,整個條件值為真五、上課流程本節(jié)課包括 5 步具體流程:(1)第 1 步為知識講解。老師帶領(lǐng)學(xué)生學(xué)習(xí)遞歸算法, 掌握遞歸的思想, 能夠梳理包含遞歸的程序的執(zhí)行過程。時長控制在 10 分 鐘內(nèi)。(2)第 2~3 步為作品編程。當(dāng)被點擊的方塊處沒有雷,且周圍也沒有雷時,需要編寫程序,完成這個方塊周圍其他方塊的檢測。另外需要編程實現(xiàn)按下空格鍵時,使用小紅旗標(biāo)記方塊或取消方塊標(biāo)記的功能。時長控制在 55 分鐘內(nèi)(3)第 4 步為拓展思考。 進(jìn)一步學(xué)習(xí)遞歸思想,完成程序的梳理。時長控制在 15 分鐘內(nèi)。(4)第 5 步為課堂總結(jié), 知識圖譜的形式總結(jié)課程內(nèi)容,鞏固重點知識點 。時長控制在 5 分鐘內(nèi)。上課步驟 主要內(nèi)容 備注【第 1 步】 知識講解 【對應(yīng) PPT】“什么是遞 歸” 【時長】 10min 【講解】 1. 使用“從前有座山”的故事來講解什么是遞歸的思想; 2. 通過一組簡單的程序講解什么是遞歸算法; 3. 講解遞歸必須有明確的終止條件的特點; 4. 總結(jié)什么是遞歸以及遞歸的特點; 5. 使用具體例子展示遞歸算法在scratch 中的應(yīng)用, 帶領(lǐng)學(xué)生分析程序的執(zhí)行過程,得 出最后結(jié)果【第 2 步】 作品編程 【對應(yīng) PPT】“檢測周圍 方塊” 【時長】 30min 【銜接】 上節(jié)課完成了檢測被點擊方塊的狀態(tài), 并顯示對應(yīng)造型的功能。在被點擊的方塊處沒有 雷, 并且周圍雷的個數(shù)為 0 時, 應(yīng)該繼續(xù)檢測周圍的方塊, 讓周圍方塊都顯示出來。接 下來就完成這個任務(wù)。 【講解】 1. 帶領(lǐng)學(xué)生分析,當(dāng)空白方塊被點擊時,應(yīng)該產(chǎn)生的效果是什么; 2. 講解當(dāng)空白方塊被點擊時,檢測周圍方塊的過程; 3. 講解檢測被點擊方塊上方的方塊時, 需要判斷的條件, 以及滿足條件時執(zhí)行的結(jié)果; 【制作】學(xué)生編寫程序, 實現(xiàn)當(dāng)被點擊方塊處沒有雷, 且周圍也沒有雷時, 檢測它上方方塊的功 能,之后運行程序觀察效果(程序樣例見“第六部分 - 程序 1-1”) 【講解】 1. 老師帶領(lǐng)學(xué)生分析程序的執(zhí)行過程,進(jìn)一步學(xué)習(xí)遞歸算法; 2. 帶領(lǐng)學(xué)生分析檢測當(dāng)前方塊周圍的方塊時,需要滿足的條件是什么; 【制作】 學(xué)生編寫程序,實現(xiàn)對周圍方塊的檢測(程序樣例見“第六部分 - 程序 1-2”) 【總結(jié)】 以提問的形式帶領(lǐng)學(xué)生總結(jié)實現(xiàn)任務(wù)四的編程思路【第 3 步】 作品編程 【對應(yīng) PPT】“標(biāo)記小紅 旗” 【時長】 25min 【銜接】 鼠標(biāo)點擊方塊后, 方塊可能出現(xiàn)的效果已經(jīng)全部完成了。除此之外, 在掃雷游戲中, 鼠 標(biāo)右鍵點擊方塊后,方塊位置會顯示小紅旗,表示此處有雷。在 scratch 中無法判斷是 否按下了鼠標(biāo)右鍵,所以使用空格鍵來實現(xiàn)。 【講解】 1. 老師帶領(lǐng)學(xué)生分析實現(xiàn)標(biāo)記方塊的功能時, 進(jìn)行標(biāo)記的方法是什么, 以及進(jìn)行標(biāo)記 和取消標(biāo)記時,方塊的造型變化; 2. 以提問的形式帶領(lǐng)學(xué)生分析如何判斷方塊當(dāng)前的造型, 以及如何實現(xiàn)方塊造型的切換; 3. 根據(jù)分析的思路完成程序編寫, 之后思考程序運行時可能會出現(xiàn)的問題以及解決方 案; 4. 講解如何使用變量記錄沒有被發(fā)現(xiàn)的雷的數(shù)目 【制作】 學(xué)生編寫程序, 完成使用空格鍵標(biāo)記方塊或取消標(biāo)記的功能(程序樣例見“第六部分 - 程序 2-1”) 【總結(jié)】 以提問的形式帶領(lǐng)學(xué)生總結(jié)完成任務(wù)五的編程思路【第 4 步】 拓展思考 【對應(yīng) PPT】“思考與拓 展” 【時長】 15min 【講解】 帶領(lǐng)學(xué)生鞏固遞歸在 scratch 編程中的應(yīng)用,學(xué)生分析自制積木的調(diào)用過程, 完成題目。 此部分為課堂挑 戰(zhàn),根據(jù)課堂實 際情況完成【第 5 步】知識鞏固 【對應(yīng) PPT】“總結(jié)與鞏 固” 【時長】 5min 老師根據(jù)ppt 中的知識圖譜回顧本節(jié)課的主要內(nèi)容,帶領(lǐng)學(xué)生完成知識總結(jié)六、主要程序說明任務(wù)四: 被點擊方塊及周圍方塊沒有雷, 繼續(xù)檢測周圍方塊程序樣例編號 程序樣例與說明 對應(yīng)的角色1-1 【方塊】【程序 1-1 描述】 方塊被點擊后,如果方塊處沒有雷,就計算這 個方塊周圍的雷的個數(shù),如果周圍雷的個數(shù)為 0,就判斷它是否 不在第一行,再判斷它上方的方塊是否被檢測過。之后檢測它上 方的方塊。1-2 【方塊】(【程序1-2描述】被檢測方塊上方的方塊檢測完成后,檢測下方的方塊,首先判斷是否不在最后一行,之后判斷是否被檢測過,沒有被檢測過,則進(jìn)行檢測。【程序1-2描述】判斷當(dāng)前方塊是否不在第一列,如果不在第一列,則判斷左側(cè)方塊是否被檢測過,如果沒有檢測過,檢測當(dāng)前)(方塊左側(cè)的方塊;之后檢測當(dāng)前方塊右側(cè)的方塊【程序1-2描述】當(dāng)前方塊不在第一行和第一列時,如果左上方方塊沒有被檢測過,就檢測左上方方塊;當(dāng)前方塊不在第一行和最后一列時,如果右上方方塊沒有被檢測過,就檢測右上方方塊。)【程序 1-2 描述】 當(dāng)前方塊不在最后一行和第一列時,如果左下 方方塊沒有被檢測過,就檢測左下方方塊; 當(dāng)前方塊不在最后一 行和最后一列時,如果右下方方塊沒有被檢測過,就檢測右下方 方塊。任務(wù)五: 按下空格鍵對方塊進(jìn)行標(biāo)記,或取消已添加的標(biāo)記程序樣例編號 程序樣例與說明 對應(yīng)的角色2-1 【方塊】【程序 2-1 描述】 產(chǎn)生克隆體后, 將變量“未發(fā)現(xiàn)的雷數(shù)”的值設(shè) 為“雷的總數(shù)”。當(dāng)在方塊處按下一次空格鍵時, 切換方塊的造型。 如果當(dāng)前是造型 9, 那么切換成造型 10, 表示標(biāo)記方塊, 將變量的 值減 1。否則的話, 如果是造型 10, 就切換成造型 9, 表示取消標(biāo) 記,將變量的值增加 1。(共47張PPT)經(jīng)典掃雷游戲遞歸調(diào)用什么是遞歸思考與拓展檢測周圍方塊小紅旗標(biāo)記總結(jié)與鞏國什么是遞歸1從前有座山從前有座出,山里有座廟,廟里有個老和尚,老和尚在給小和尚講故事從前有座山山里有座廟廟里有個老和尚老和尚在給小和尚講故事從前有座山山里有座廟廟里有個老和尚老和尚在給小和尚講故事從前有座山山里有座廟廟里有個老和尚老和尚在給小和尚講故事從前有座山山里有座廟廟里有個老和尚老和尚在給小和尚講故事從前有座山從前有座山山里有座廟廟里有個老和尚老和尚在給小和尚講故事在故事中提到了同樣的故事在程序中調(diào)用了同樣的程序調(diào)用調(diào)用自己調(diào)用①②③④100989799...遞歸調(diào)用遞歸程序中的函數(shù)在執(zhí)行時,直接或間接的調(diào)用自己的現(xiàn)象調(diào)用終止條件從前有座出,山里有座廟,廟里有個老和尚,老和尚在給小和尚講故事從前有座山山里有座廟廟里有個老和尚老和尚在給小和尚講故事從前有座山山里有座廟廟里有個老和尚老和尚在給小和尚講故事從前有座山山里有座廟廟里有個老和尚老和尚在給小和尚講故事從前有座山山里有座廟廟里有個老和尚老和尚在給小和尚講故事終止條件終止條件遞歸遞歸必須有明確的終止條件沒有終止條件時永遠(yuǎn)執(zhí)行滿足終止條件時停止執(zhí)行遞歸總結(jié)遞歸:程序中的函數(shù)在執(zhí)行時,直接或間接的調(diào)用自己的現(xiàn)象必須為遞歸指定明確的終止條件函數(shù)A函數(shù)A函數(shù)A函數(shù)A調(diào)用調(diào)用調(diào)用遞歸應(yīng)用運行程序后,變量“數(shù)字結(jié)果”的值是多少?①計算10:“數(shù)字結(jié)果”增加9→19②計算9:“數(shù)字結(jié)果”增加8→27③計算8:“數(shù)字結(jié)果”增加7→34④計算7:“數(shù)字結(jié)果”增加6→40⑤計算6:“數(shù)字結(jié)果”增加5→45⑥計算5:“數(shù)字結(jié)果”增加4→49⑦計算4:“數(shù)字結(jié)果”增加3→52⑧計算3:“數(shù)字結(jié)果”增加2→54⑨計算2:“數(shù)字結(jié)果”增加1→55⑩計算1:“數(shù)字結(jié)果”增加0→55檢測周圍方塊2任務(wù)四任務(wù)四:被點擊方塊及周圍方塊沒有雷,繼續(xù)檢測周圍方塊空白方塊被點擊被點擊的方塊及周圍沒有雷繼續(xù)檢則局圍的8個方塊繼續(xù)檢測周圍是“造型9“的方塊一直到外側(cè)都是周圍有雷的方塊一直到外側(cè)都是周圍有雷的方塊檢測方塊方塊被點擊是否有雷?周圍是否有雷?檢測周圍方塊檢測被點擊方塊檢測周圍的方塊否否檢測周圍方塊檢測周圍的方塊⑤ ① ⑥③ ④⑦ ② ⑧檢測①②③④⑤⑥⑦⑧這8個位置的方塊填入待檢測的方塊的編號檢測是否有雷檢測被點擊方塊的上方方塊:需要滿足的條件:被點擊的方塊上方有方塊:不在第一行上方的方塊沒有被檢測過:上方方塊顯示示“造型9”“執(zhí)行的操作:檢測被點擊方塊上方的方塊:上方方塊的編號檢測上方方塊Step1:檢測被點擊方塊上方的方塊檢測上方方塊運行測試,觀察出現(xiàn)的效果檢測上方方塊被點擊的方塊:86①周圍沒有雷②檢測上方方塊被點擊的方塊:86①②385470周圍沒有雷周圍沒有雷周圍沒有雷周圍沒有雷③④遞歸的使用使用了遞歸的算法!終止條件:被檢測的方塊周圍有雷!檢測周圍方塊檢測周圍的方塊:需判斷的條件:這個位置是否有方塊這個方塊是否被檢測過試一試:編寫程序,當(dāng)被檢測的方塊及它周圍方塊沒有雷時,繼續(xù)檢測周圍的方塊可以復(fù)制“計算雷的數(shù)目”腳本,修改參數(shù)完成檢測周圍方塊Step2:檢測被點擊方塊下方的方塊判斷是否不在最后一行判斷是否被檢測過檢測當(dāng)前方塊下方的方塊檢測周圍方塊Step2:檢測左側(cè)、右側(cè)的方塊判斷是否不在最后一列判斷是否被檢測過檢測當(dāng)前方塊右側(cè)的方塊判斷是否不在第一列判斷是否被檢測過檢測當(dāng)前方塊左側(cè)的方塊檢測周圍方塊Step2:檢測左上、右上的方塊判斷是否既不在第一行也不在最后一列判斷是否被檢測過檢測當(dāng)前方塊右上方的方塊判斷是否既不在第一行也不在第一列判斷是否被檢測過檢測當(dāng)前方塊左上方的方塊檢測周圍方塊Step2:檢測左下、右下的方塊是否既不在最后一行也不在第一列判斷是否被檢測過檢測當(dāng)前方塊左下方的方塊是否既不在最后一行也不在最后一列判斷是否被檢測過檢測當(dāng)前方塊右下方的方塊任務(wù)總結(jié)1.需要滿足哪些條件,才能檢測當(dāng)前方塊右上方的方塊?2.編程實現(xiàn)檢測當(dāng)前方塊周圍的方塊時,使用的算法是:①當(dāng)前方塊處沒有雷,且周圍也沒有雷②當(dāng)前方塊的右上方有方塊:既不在第一行也不在最后一列③當(dāng)前方塊右上方的方塊沒有被檢測過遞歸小紅旗標(biāo)記3任務(wù)五任務(wù)五:按下空格鍵,使用小紅旗標(biāo)記有雷的位置標(biāo)記小紅旗使用小紅旗標(biāo)記有雷的位置:進(jìn)行標(biāo)記的方法:進(jìn)行標(biāo)記的結(jié)果:①添加標(biāo)記:從“造型9”切換成“造型10”②取消標(biāo)記:從“造型10”切換成“造型9”進(jìn)行標(biāo)記②如何切換方塊的造型?①如何判斷方塊當(dāng)前的造型是什么?②如何切換方塊的造型?是造型9?切換成造型10是造型10?切換成造型9是是否進(jìn)行標(biāo)記運行時會出現(xiàn)什么問題標(biāo)記小紅旗按下一次空格時,造型不止切換一次等待空格鍵抬起未發(fā)現(xiàn)的雷數(shù)①方格被標(biāo)記,數(shù)字減1②取消方格標(biāo)記,數(shù)字增加1未被標(biāo)記的雷的個數(shù)未發(fā)現(xiàn)的雷數(shù)②如何切換方塊的造型?新建變量存儲未被發(fā)現(xiàn)的雷的個數(shù)變量初始值:雷的總數(shù)方塊被標(biāo)記時:變量的值減1取消方塊標(biāo)記時:變量的值加1編程任務(wù)·試一試:編寫程序,實現(xiàn)按下空格鍵時對方塊進(jìn)行標(biāo)記和取消標(biāo)記的功能標(biāo)記方塊Step1:按下空格鍵標(biāo)記方塊變量初始值等于雷的總數(shù)在方塊處按下空格鍵時等待空格鍵抬起如果顯示“造型9”切換到“造型10"變量減1如果顯示“造型10°切換到“造型9%變量加1任務(wù)總結(jié)簡述實現(xiàn)按下空格鍵對方塊進(jìn)行標(biāo)記或取消標(biāo)記的過程:①標(biāo)記(取消標(biāo)記)方塊的操作:②通過列表項內(nèi)容判斷當(dāng)前的造型③黃換列表項內(nèi)容使方塊切換成對應(yīng)造型④改變變量“未發(fā)現(xiàn)的雷數(shù)”的值思考與拓展4遞歸的應(yīng)用運行程序后,角色“說”的內(nèi)容是什么?遞歸的應(yīng)用②如何切換方塊的造型?結(jié)果的初始值:5①計算5→結(jié)果=5×5=25;計算4②計算4→結(jié)果=25×4=100;計算3③計算3→結(jié)果=100×3=300;計算2④計算2→結(jié)果=300×2=600;計算1⑤計算1→說“結(jié)果”:600總結(jié)與鞏固5 展開更多...... 收起↑ 資源列表 第3.docx 第3節(jié)-遞歸調(diào)用.pptx 縮略圖、資源來源于二一教育資源庫