資訊內容
第6課奇趣故事——鏈表和字符串
第6課奇趣故事——鏈表和字符串
任務導航
笑話和幽默給我們的生活帶來了樂趣,利用隨機現象產生的奇妙效果會產生一種意想不到的奇趣故事,跟隨老師來體驗一下,一定會給你留下難忘的印象。
如圖6.1所示本來很正常的三個故事,怎么放在鏈表“奇趣故事”里面就變得很奇怪?同學們,這才叫奇趣故事。思考一下源代碼是如何制作的吧。

圖6.1 奇趣故事
任務分析
奇趣故事的創作主要是利用Scratch中新建鏈表,可以采用變量中的“新建一個鏈表”功能新建“人物”、“地點”和“事件”三個鏈表,如圖6.2所示。使用代碼

可以在空白鏈表中增添數據,使用代碼

可以說任意一個人物。

圖6.2人物”、“地點”和“事件”三個鏈表
Follow Me
1. 創建鏈表并添加數據
第1步:單擊指令模塊區的“變量”按鈕,單擊“新建一個鏈表”,在彈出的對話框中填寫鏈表的名稱“人物”,然后單擊“確定”按鈕,完成鏈表“人物”的創建,如圖6.3所示。
圖6.3 創建鏈表“人物”
第2步:給鏈表“人物”添加數據,如圖6.4所示。
② 輸入數據 |
圖6.4 給鏈表“人物”添加數據
第3步:以此類推,創建“地點”和“事件”兩個鏈表,并添加數據,如圖6.5所示。

圖6.5 創建完成的三個鏈表
2. 程序設計
第1步:說奇趣故事。按照表6.1中給出的思路,嘗試完成“說奇趣故事”部分的腳本設計。
表6.1 “說奇趣故事”的設計思路
想法 | 模塊 | 腳本 |
按下空格鍵開始講故事 | ![]() | ![]() |
說出鏈表“人物”中的任意數據并等待1秒,再說出鏈表“地點”中的任意數據并等待1秒,最后說出鏈表“事件”中的任意數據并等待1秒 | ![]() |
第2步:把各種奇趣故事存下來。按照表6.2中給出的思路,嘗試完成“保存奇趣故事”部分的腳本設計。
表6.2 “保存奇趣故事”的設計思路
想法 | 模塊 |
點擊角色開始添加故事 | ![]() |
三個鏈表中的數據合并成一個字符串 | ![]() |
將合并后的字符串加入奇趣故事的鏈表存儲 | ![]() |
腳本 | |
![]() |
智多星
保存奇趣故事時,需要搭建字符串連接的復合模塊,分為以下幾個步驟。
首先,將

腳本塊插入

模塊第一個空里,再將

插入第2個空里,得到一個復合模塊

。然后再一次用

模塊,將復合模塊插入第一個空里,將

插入第2個空里,得到

最后,將合并好的字符串數據,插入到

第一個空里。
想一想
完成設計后,自己來玩一玩,覺得好笑嗎?你還發現了什么新問題?有什么新思考?
1. 角色一邊說一邊表演動作。
2.
3.
你能給角色設計新的腳本,解決以上問題嗎?
【DIY】
繪制角色,使得故事更有趣,通過詢問功能,增添數據庫的內容,使奇趣故事添加更多的奇趣效果。提問回答建立數據庫的設計思路見圖6.3。
表6.3提問回答建立數據庫的設計思路
想法 | 模塊 | 腳本 |
按下“↑”開始添加數據 | ![]() | ![]() |
詢問人物,將回答加入人物鏈表,再詢問地點,將回答加入地點鏈表,最后詢問事件,將回答加入事件鏈表。 | ![]() ![]() |
學生分組表演情境,用DV將學生趣味短劇錄制下來。
奇趣故事可以看作是一個游戲,至此我們已經初步地掌握了Scratch的一般技巧,可以編寫一些小游戲。在Scratch中,選擇打開選擇例子中的Games,察看系統自帶程序中的例子,可以自學一下其中的代碼,編寫一些小游戲,在本書的第13課會有一個數碼游戲展,到時候期望可以展出一些同學們自己的作品。

圖6.6 打開系統自帶游戲作品分析其中的代碼
【知識著陸】
代碼:鏈表,鏈表的增添數據,引用鏈表的任意項,詢問回答
技巧:使用字符串操作連接字符,用新的鏈表記錄結果
【創作天地】
- 設計一個表演活動,讓每個同學扮演一個人物,然后表演一遍正常情節的故事,最后再按照奇趣故事來臨場表演,一定會非常有趣。
- 給你的奇趣故事增添時間鏈表
- 如果背景能夠伴隨著地點變換那一定很有趣,但是可能比較難,你試一試好么?
- 詢問指令可以用來建立數據庫,比如記錄學生的姓名,性別,年齡,評價等級的數據庫
視野拓展
點擊Scratch主頁中的討論區,你就進入了Scratch論壇,如同6.1所示

圖6.1 Scratch論壇
你可以使用網頁翻譯工具將論壇轉換為中文如圖6.2所示。

網頁翻譯
翻譯后你就可以更加順暢地瀏覽Scratch論壇了

翻譯后的頁面
Scratch論壇提供中文分論壇,這里也是交流學習的好地方,此外國內的一些QQ群也是學習的好地方,你都可以通過搜索找到最適合你的學習方式。
