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

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

4、 初始化鏈表Y坐標(biāo)
文字方陣Y坐標(biāo)的分布,也是有規(guī)律的,每行里的4個(gè)克隆體,Y坐標(biāo)都是一樣的,每往下一行,Y坐標(biāo)就減少大約85。
如果我們發(fā)現(xiàn)了規(guī)律,就能通過(guò)重復(fù)執(zhí)行快速得將數(shù)據(jù)寫(xiě)入鏈表。

5、初始化角色
對(duì)角色進(jìn)行初始化設(shè)置,同學(xué)們可以根據(jù)喜好設(shè)置角色大小、造型、位置等,然后進(jìn)行游戲說(shuō)明,為整個(gè)游戲的運(yùn)行打下良好基礎(chǔ)。

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

7、初始化克隆體
這部分是對(duì)克隆體進(jìn)行初始化,并對(duì)程序的運(yùn)行進(jìn)行判斷。
當(dāng)克隆體啟動(dòng)時(shí),首先要初始化,并按變量臨時(shí)數(shù)的順序,切換到對(duì)應(yīng)的造型編號(hào),然后按順序移到X坐標(biāo)鏈表和Y坐標(biāo)鏈表對(duì)應(yīng)的位置。
為了使交互性更好,同學(xué)們可以設(shè)置克隆體碰到鼠標(biāo)指針就改變?cè)煨痛笮。钡?4個(gè)字全部猜對(duì),再刪除剩余克隆體,表示游戲已經(jīng)結(jié)束。

8、邏輯判斷部分
這個(gè)部分可就厲害了,是作品的核心判斷程序,當(dāng)某個(gè)克隆體被點(diǎn)擊,如果它的造型編號(hào)等于正確的文字順序,那么它就會(huì)消失并將猜對(duì)字?jǐn)?shù)增加1,如果猜錯(cuò)就播放聲音。
【提示】
同學(xué)們看懂了嗎,例如我們已依次點(diǎn)擊了前兩個(gè)字“爆竹”,這時(shí)猜對(duì)了2個(gè)字,變量猜對(duì)字?jǐn)?shù)就等于2,那么只有點(diǎn)擊第3個(gè)字,即造型為“聲”、造型編號(hào)為3的克隆體,才是正確的,這時(shí)只有這個(gè)克隆體被點(diǎn)擊才會(huì)消失,并將猜對(duì)字?jǐn)?shù)增加1。

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

- 上一篇
少兒編程Scratch第十講:鋼琴演奏入門
目的 目的:編寫(xiě)一個(gè)簡(jiǎn)易的鋼琴演奏程序,了解Scratch對(duì)聲音的處理(播放聲音、彈奏鼓聲、彈奏音符,控制節(jié)拍,選擇樂(lè)器,控制音量等)。
- 下一篇
少兒編程火熱興起,人人都可以學(xué)編程
“數(shù)字流暢能力”應(yīng)當(dāng)是指設(shè)計(jì),創(chuàng)造和重新改進(jìn),而不是僅僅瀏覽信息,聊天和與軟件交互。 作者:MitcheL ResnicK, John maLoneY, anDRés monRoYheRnánDez, nataLie RusK,