資源簡介 數字華容道項目第四講: 位置移動一、 課程目標1、掌握克隆體的屬性相關知識,掌握數學運算、邏輯運算的使用;2、學習使用自制積木定義函數;3、了解 3×3 方格中,計算行數和列數的方法。二、 課堂組織形式1、開放式問題討論2、引導式思維發散3、問答式課堂互動4、針對問題探究實踐5、學生動手制作項目6、課堂內容梳理鞏固三、課堂準備編號 名稱 內容 來源 備注【 1】 PPT 課件 課堂全流程演示文稿 火星科學盒官網【2】 課程資料 PPT 課件、講義、視頻 火星科學盒官網【 3】 教師參考程序 項目完整程序 網盤鏈接下載【4】 學生上課使用資料 筆記本電腦或者臺式電腦 老師自備 電腦系統需求: win 10+,或 macOS 10.13+編程所需素材 網盤鏈接下載課堂報告 網盤鏈接下載【 5】 編程軟件下載 scratch3.0 scratch 官網 課前下載安裝四、主要腳本程序編號 詳細內容 功能描述【 1】 “()除以()的余數” 計算兩個數字相除得到的余數【2】 “() >()” 比較兩個數據的大小, 當前面填入的內容大于 后面時,返回的值為“true”否則為 “false”【 3】 “() <()” 比較兩個數據的大小, 當前面填入的內容小于 后面時,返回的值為“true”否則為 “false”【4】 “造型編號” 獲取角色的造型編號屬性,也可以獲取單個克 隆體的造型編號五、上課流程本節課包括 5 步具體流程:(1)第 1 步為知識講解。老師通過演示操作講解有關于克隆體屬性的知識,總結可以直接獲取的克隆體的屬性有什么 。時長控制 在 10 分鐘內。(2)第 2~3 步為作品編程。首先分析判斷兩個克隆體是否相鄰時需要滿足的條件,然后講解如何使用位置號計算行列數,完成計 算行數差和列數差的函數的自定義。 之后帶領學生思考回顧如何實現數字塊和空白塊位置的交換,實現點擊數字塊后,移到相鄰空白 塊位置的功能。時長控制在 60 分鐘內(3)第 4 步為拓展思考。 思考如何記錄還原數字塊順序所需要的步數,并編寫程序實現。時長控制在 10 分鐘內。(4)第 5 步為課堂總結, 知識圖譜的形式總結課程內容,鞏固重點知識點 。時長控制在 5 分鐘內。上課步驟 主要內容 備注【第 1 步】 知識講解 【對應 PPT】“克隆體的 屬性” 【時長】 10min 【引入】 在普通版的數字華容道游戲中, 是通過偵測數字塊能否碰到空白塊來偵測數字塊和空 白塊是否相鄰的。但是在克隆版的游戲中, 每個克隆體沒有單獨的名字, 也沒有辦法直 接偵測克隆體之間是否互相碰到。和原角色相比, 克隆體的某些狀態是無法直接偵測 的, 那么, 克隆體的其他屬性比如坐標等等, 是否可以直接獲得呢?我們一起來測試一 下吧。 【講解】 1. 老師拼接腳本后,邊演示邊講解,講解克隆體可以直接獲取坐標、方向等屬性的知 識; 2. 通過演示講解可以直接獲取克隆體造型編號的知識; 3. 講解克隆體可以偵測是否碰到其他角色,以及可以偵測是否碰到某種顏色的知識。【第 2 步】 相鄰的條件 【對應 PPT】“相鄰的條 【銜接】 上節課的作品中, 已經完成了游戲的初始化, 點擊綠旗運行游戲之后, 數字塊和空白塊件” 【時長】 35min 就會亂序分布在棋盤上。接下來就需要點擊數字塊移動它的位置, 將數字進行排序了。 所以接下來需要完成點擊數字塊后,移動數字塊位置的功能。 【講解】 老師帶領學生逐步分析如何判斷數字塊和空白塊是否相鄰: 1. 觀察并分析數字塊和空白塊相鄰時的特點: 位于同一行或同一列; 2. 分析得出數字塊和空白塊相鄰的條件:行數差和列數差的和為 1; 3. 講解如何計算行數和列數 【制作】 學生編寫程序,新建自制積木,定義計算數字塊(空白塊)行數和列數的腳本。(程序 樣例見“第六部分 - 程序 1-1”)、 【講解】 1. 講解克隆體的造型編號和位置號的項目編號之間的關系,分析得出可以使用造型編 號獲取對應的位置號; 2. 講解如何計算數字塊和空白塊的行數和列數 【制作】 學生編寫計算數字塊和空白塊列數與行數的腳本(程序樣例見“第六部分 - 程序 1- 2”)【講解】 帶領學生分析如何計算行數差和列數差 【制作】 1. 學生拼接腳本, 完成計算行數差和列數差的程序編寫(程序樣例見“第六部分 - 程 序 1-3”) 2. 新建自制積木,將計算行列差的腳本定義為一個函數, 方便程序的調用(程序樣例 見“第六部分 - 程序 1-4”)【第 3 步】 數字塊移動 【對應 PPT】“數字塊移 動” 【時長】 25min 【講解】 1. 使用流程圖分析點擊數字塊后, 控制數字塊移動程序的執行過程; 2. 分析列表“位置號”中應該交換的項目是什么; 【制作】 學生編寫程序, 實現點擊角色后, 如果數字塊和空白塊相鄰, 就交換對應列表項的功能 (程序樣例見“第六部分 - 程序 2-1”) 【講解】 帶領學生回顧移動數字塊和空白塊位置的實現方式, 【制作】 學生編寫程序實現點擊角色后,如果數字塊和空白塊相鄰,就交換位置的效果。(程序樣例見“第六部分 - 程序 2-2”) 【講解】 1. 運行程序觀察效果,發現所有方塊都會移動到空白塊所在的位置; 2. 分析如何解決這個問題:添加限制條件,只有空白塊才可以移動 【制作】 學生修改腳本, 實現接收廣播后, 只有被點擊的數字塊和空白塊可以移動的功能(程序 樣例見“第六部分 - 程序 2-3”) 【總結】 總結任務中實現的角色功能及使用的主要腳本。【第 4 步】 拓展思考 【對應 PPT】“思考與拓 展” 【時長】 10min 【講解】 帶領學生分析如何記錄數字塊移動的步數 【制作】 學生編寫程序,添加變量記錄數字塊移動的步數(程序樣例見“第六部分 - 程序小挑 戰”) 此部分為課堂挑 戰,根據課堂實 際情況完成【第 5 步】知識鞏固 【對應 PPT】“總結鞏固” 【時長】 5min 老師根據ppt 中的知識圖譜回顧本節課的主要內容,帶領學生完成知識總結六、主要程序說明任務一: 點擊數字塊后, 判斷和空白塊是否相鄰,相鄰時交換位置程序樣例編號 程序樣例與說明 對應的角色1-1 【方塊】【程序 1-1 描述】 定義計算數字塊(空白塊) 行數和列數的腳 本,使用位置號進行計算,所以需要定義一個帶有輸入項的函 數。 列數用位置號除以 3 的余數得出,行數通過判斷位置號的范 圍得到。1-2 【程序 1-2 描述】 調用自定義積木,輸入數字塊的位置號后計算 數字塊的行數和列數并分別存儲在變量中;輸入空白塊的位置號 后計算空白塊的行列數,同樣分別存儲在對應的變量中。1-3 【程序 1-3 描述】調用自制積木分別計算數字塊和空白塊的行數 和列數,之后比較數字塊和空白塊之間行列數的大小,用較大的 數字減去較小的數字,計算行數差和列數差1-4【程序 1-4 描述】將計算行數差和列數差的腳本定義為一個自制 積木,后續計算行數差和列數差時,直接調用自制積木就可以執 行2-1 【程序 2-1 描述】 點擊角色后,調用計算行數差和列數差的腳 本,計算數字塊和空白塊之間的行數差和列數差。之后判斷列數 差和行數差的和是否等于 1,等于 1 時,就交換這個數字塊和空 白塊對應的列表。 【方塊】2-2【程序 2-2 描述】 數字塊被點擊后, 調用自制函數計算與空白塊 之間的行數差和列數差。滿足和空白塊相鄰的條件時,交換這個 數字塊和空白塊對應的列表項,發送移動的廣播消息,并將這個 數字塊移動到對應的位置。 方塊角色接收到移動的廣播后,移動 到空白塊位置號對應的位置2-3【程序 2-3 描述】 克隆體接收到廣播后,通過造型編號判斷自己 是不是空白塊,只有空白塊才可以移動到空白塊列表對應的位置拓展任務:添加變量,記錄還原數字塊順序所需的數字塊的移動步數程序樣例編號 程序樣例與說明 對應的角色小挑戰 【方塊】【程序 小挑戰 描述】 點擊綠旗后, 變量“步數”的初始值為 0,數字塊和空白塊每交換一次, 變量就增加 1。(共56張PPT)數字華容道位置移動克隆體屬性思考與拓展相鄰的條件數字塊移動總結與鞏固克隆體屬性1檢測是否碰到可以直接獲得的克隆體哪些屬性呢?可以偵測是否相互碰到不能偵測是否相互碰到克隆體獲取屬性獲取屬性克隆體可以響應被鼠標點擊可以直接獲取克隆體的x坐標可以直接獲取克隆體的y坐標可以直接獲取克隆體的方向可以直接獲取克隆體的造型編號偵測模塊克隆體可以偵測是否碰到其他角色克隆體可以偵測是否碰到某種顏色克隆體的屬性克隆體可以響應被鼠標點擊可以直接獲取克隆體的x坐標可以直接獲取克隆體的y坐標可以直接獲取克隆體的方向可以直接獲取克隆體的造型編號克隆體可以偵測是否碰到其他角色克隆體可以偵測是否碰到某種顏色相鄰的條件2任務一任務一:點擊數字塊,移動數字塊的位置,進行排序檢測是否碰到如何檢測數字塊和空白塊是否相鄰移到相鄰空白塊無法直接偵測是否碰到相鄰的條件數字塊和空白塊相鄰 數字塊和空白塊位于同一行或同一列數字塊和空白塊位于同一行或同一列 數字塊和空白塊相鄰同一行同一列同一列同一行相鄰的條件第1行第2行第3行第1列第2列第3列同一行同一列列數相差1相鄰列數相差1不相鄰列數相差1相鄰列數相差1不相鄰列數相差2列數相差1行數相差2行數相差1條件簡化各個數字塊與空白塊之間的行數差+列數差的值是多少?同一行列數相差1相鄰行數相差1同一列與與行數差:0列數差:0列數差:1行數差:1如果行數差+列數差=1,那么數字塊和空白塊相鄰323212101計算列數1 ÷ 3 = 0……12 ÷ 3 = 0……23 ÷ 3 = 1……04 ÷ 3 = 1……15 ÷ 3 = 1……26 ÷ 3 = 2……07 ÷ 3 = 2……18 ÷ 3 = 2……29 ÷ 3 = 3……0123123123①②③④⑤⑥⑦⑧⑨位置號列數列數 =如果 列數 = 0那么 列數 → 3行數差 + 列數差 = 1 數字塊和空白塊相鄰行數-行數 列數-列數計算行數111222333①②③④⑤⑥⑦⑧⑨位置號行數行數 = 1行數 = 2行數 = 3位置號:1 ~ 3 行數 = 1位置號:4 ~ 6 行數 = 2位置號:7 ~ 9 行數 = 3計算行列數新建變量存儲行、列數計算列數計算一個除法算式的余數例:如果 列數 = 0那么 列數 → 3列數 = 位置號 ÷ 3的余數計算行數位置號:1 ~ 3 行數 = 1位置號:4 ~ 6 行數 = 2位置號:7 ~ 9 行數 = 3計算行數如果成立不成立如果成立不成立自制函數每次點擊方塊時都要執行組合成自制積木方便調用位置號行數列數輸入項輸出編輯任務試一試:建立自制積木,定義使用位置號計算行列數的腳本1.位置號是輸入項2.計算行列數時需要調用位置號計算行列數Step1:新建自制函數,定義使用位置號計算行列數的積木獲取位置號如何獲取被點擊角色的位置號數字塊被點擊時計算行列數獲取位置號克隆體的位置號位置號:獲取位置號如何獲取空白塊的位置號?空白塊位置號:位置號:計算行列數變量存儲數字塊行、列數變量存儲空白塊行、列數計算被點擊的數字塊的行列數:計算空白塊的行列數:存儲行列數輸入位置號輸出列數輸出行數計算并存儲被點擊的數字塊的行列數:計算并存儲空白塊的行列數:編輯任務試一試:新建變量,拼接腳本,計算并存儲數字塊及空白塊的行列數1.輸入項是對應的位置號2.計算完成后存儲在各自的變量中存儲行列數Step2:輸入各自的位置號,計算數字塊及空白塊的行列數計算行列差行數:1行數:2行數:3行數差:1(空白塊-數字塊)行數差:1(數字塊-空白塊)比較數字塊行數和空白塊行數如果成立不成立編輯任務試一試:在計算行列數腳本的下方繼續編程完成行數差和列數差的計算,并將結果分別存儲在變量中1.需要新建兩個變量2.計算行列差時需要先比較計算行列差Step3:計算數字塊和空白塊之間的行數差和列數差自制積木每次點擊方塊時執行,計算行列差編輯任務試一試:新建自制積木,定義計算行數差和列數差的積木數字塊移動3移動數字塊計算行列差與空白塊相鄰?交換列表內容是否移動角色位置不做反應角色被點擊被點擊數字塊的位置號空白塊的位置號移動被點擊數字塊的位置移動空白塊的位置移動數字塊交換列表內容移動方塊位置交換什么?被點擊的數字塊的位置號被點擊的數字塊的位置號交換編輯任務試一試:編寫腳本,實現數字塊被點擊時如果和空白塊相鄰,就交換位置號列表項的功能交換兩個列表項時需要中間變量交換位置號Step4:點擊數字塊,滿足相鄰條件時,交換列表內容移動位置數字塊移動空白塊移動移動位置計算行列差與空白塊相鄰?交換列表內容是否移動角色位置不做反應角色被點擊數字塊空白塊編輯任務試一試:編寫腳本,實現數字塊被點擊時如果和空白塊相鄰,和空白塊交換位置的效果1.根據交換后的列表內容移動位置2.發送廣播,移動空白塊位置移動角色位置Step5:交換列表內容后,移動角色位置空白塊移動為什么所有方塊都移到了空白塊的位置空白塊移動接收廣播是空白塊?移動是否不做反應空白塊接收廣播是空白塊?移動是否不做反應Step6:移動空白塊的位置編輯任務試一試:修改腳本,實現接收到廣播后只有空白塊移動位置的功能造型編號為9的克隆體是空白塊任務一總結實現功能:點擊數字塊時,如果數字塊和空白塊相鄰,就交換數字塊和空白塊的位置。主要腳本:思考與拓展4記錄移動步數如何記錄移動的步數開始游戲數字塊和空白塊交換挑戰任務試一試:編寫腳本,使用變量記錄還原數字塊順序所需要的移動步數數字塊和空白塊交換時,步數才會增加記錄移動步數總結與鞏固5 展開更多...... 收起↑ 資源列表 第4.docx 第4節-位置移動.pptx 縮略圖、資源來源于二一教育資源庫