資訊內容
【高級案例教程】歡樂古詩猜猜猜,Scratch幫你實現
“爆竹聲中一歲除,
春風送暖入屠蘇。”
……
這些從小背過的古詩詞你還記得嗎?
猜古詩可能是大家小時候經常玩的游戲吧
今天教你在Scratch中實現。
今日案例適合具有一定基礎的學員學習。
“爆竹聲中一歲除,春風送暖入屠蘇
”
《歡樂猜詩》
1
作品描述
-
本作品目的是讓孩子們在富有趣味的氛圍中學習詩詞。
-
當點擊開始時會隨機生成文字方陣,必須按照一定的順序點擊文字方陣,才能過關。
-
本作的完成還是挺有難度的,希望同學們勇于挑戰,徹底理解里面的編程技巧和算法思路,然后做出讓自己都覺得超棒的作品!
你需要先了解這些知識點:
【隨機數】結合隨機數代碼塊,含義是在某個數的范圍內,任意選擇一個數,在本次教程案例中指1-16之間任意的一個數。
【鏈表】舉個例子,變量就像一個抽屜,我們可以往里面放東西也可以拿東西出來,鏈表就好像一個大柜子,這個柜子里有很多按順序排列的抽屜,我們可以往柜子里的某個抽屜放東西和拿東西。
【變量】保存數據的盒子
【克隆體】類似于孫悟空的毫毛分身術或者影分身術,每個克隆體雖然跟本體完全一樣,但是可以有不同的動作
2
作品教程
角色造型是用PPT進行設計,詩來自王安石(宋)的《元日》。
1、創建角色和游戲背景
新建背景,可以使用你喜歡的背景圖片。
別看作品角色只有一個,秘密就在于造型有17個(1個空白造型、14個文字、2個干擾造型)。
【提示】
這里有個小訣竅,使用PowerPoint快速設計造型,另存為PNG圖片,導入到角色造型中。

2、生成隨機數鏈表
為生成有16個數字,且順序隨機的鏈表,我們可以借助臨時數這個變量。
首先初始化鏈表隨機數和變量臨時數,重復執行16次將數字隨機插入鏈表中。
【提示】
這里使用明為“隨機數”的柜子,這個柜子有16個抽屜,我們把1到16隨機放到這些抽屜里。
3、初始化鏈表X坐標
通過觀察,我們可以發現文字方陣排列是有規律的,以X坐標為例,它可以分成4行,每行有4個克隆體,相鄰克隆體間橫向距離約為115。
聰明的同學就可以巧妙利用這樣的規律,得到一行克隆體的數據,像這樣重復4次,不就快速得到所有克隆體X坐標啦,從而大大減少積木塊的使用。
【提示】
這里又用了2個鏈表,用于存放16個克隆體的坐標,只是把X坐標和Y坐標放在2個不同的柜子里。

4、 初始化鏈表Y坐標
文字方陣Y坐標的分布,也是有規律的,每行里的4個克隆體,Y坐標都是一樣的,每往下一行,Y坐標就減少大約85。
如果我們發現了規律,就能通過重復執行快速得將數據寫入鏈表。

5、初始化角色
對角色進行初始化設置,同學們可以根據喜好設置角色大小、造型、位置等,然后進行游戲說明,為整個游戲的運行打下良好基礎。

6、生成克隆體
為高效進行游戲,我們要使用神奇的克隆功能,對角色重復克隆16次,生成文字方陣所需要的克隆體,然后隱藏本體。
在這里,變量臨時數的作用變了,它將在后面的程序中繼續發揮重大作用。

7、初始化克隆體
這部分是對克隆體進行初始化,并對程序的運行進行判斷。
當克隆體啟動時,首先要初始化,并按變量臨時數的順序,切換到對應的造型編號,然后按順序移到X坐標鏈表和Y坐標鏈表對應的位置。
為了使交互性更好,同學們可以設置克隆體碰到鼠標指針就改變造型大小,直到14個字全部猜對,再刪除剩余克隆體,表示游戲已經結束。

8、邏輯判斷部分
這個部分可就厲害了,是作品的核心判斷程序,當某個克隆體被點擊,如果它的造型編號等于正確的文字順序,那么它就會消失并將猜對字數增加1,如果猜錯就播放聲音。
【提示】
同學們看懂了嗎,例如我們已依次點擊了前兩個字“爆竹”,這時猜對了2個字,變量猜對字數就等于2,那么只有點擊第3個字,即造型為“聲”、造型編號為3的克隆體,才是正確的,這時只有這個克隆體被點擊才會消失,并將猜對字數增加1。

4
創意來源
創意來源于過年時布置學生參加網易卡搭“為新年加碼”活動,(點擊閱讀原文,進入新年活動專題)我自己也動手設計了一個新年主題的原創作品,這個教程內容屬于當時作品的一部分。
作品主要作為一種范例,希望能讓學生通過作品教程,學到一些算法思維,然后繼續完善這個范例,或者進行創新改造。
5
反思創新
這個作品并非完整的游戲,只是想作為案例,希望能引發大家的討論和思考,讓它的價值延伸得更遠。
我們可以有更多的思考,例如:
-
文字方陣的位置編排有沒有不同的實現方法。
-
如果要設置更多的詩句,作品是不是有更好的呈現方式。
-
如果以這個案例進行課堂教學,課時數如何設置。
這個案例只是我無心撿到的“磚”,希望能和大家多多交流,從而收獲Scratch趣味編程中更多的“玉”。
聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯系刪除
