又到了一周一度的教女兒編程的“Scratch時間”。
這次我想教她如何用Scratch做一個簡單的Siri。當然,Scratch沒有iPhone的Siri那么智能。家長可以拓展這節課里的“簡易版Siri”和孩子互動,比如家長問問題孩子寫答案,或者孩子寫問題家長寫答案。
先上效果圖:
我依然是通過微信視頻教我的乖女兒。
視頻一接通,我就看到乖女兒對我那崇拜的表情。
我跟她說,“乖寶寶,今天我們做一個簡單的Siri好不好啊?”
女兒聽到Siri就有了興趣,“好啊,我這就打開Scratch!”
我先告訴她做Siri的框架,“Siri每天被無數人調戲,真可愛。每次我們要調戲Siri,就打開它,調戲完了,就關閉它。下次要調戲了,再打開它。。。”
她問我,“是啊,網上還有很多花式調戲Siri的方法。比如“!&%&%&¥”
然后她跟我如數家珍地述說了調戲Siri的套路。
一切都是套路。
我把話題往編程上轉,“所以我們需要一個循環結構?不然只能調戲一次,那多沒意思。”
她反應也挺快,“對!我們可以用‘控制’里的‘重復執行’塊。”
“好聰明啊你!接著說。”我鼓勵她自己想。
她繼續分析,“我們還需要選擇一個背景,還需要小貓咪!”
我覺得我輕松不少,她已經上手了,“對!那你自己選擇一個背景吧!”
這是她給我的背景(新建背景->從背景庫中選擇背景->戶外->boardwalk):
我調侃她,“把小貓咪拖到地上吧,別讓它掉海里啦!”
我又提醒她,“注意‘動作’按鈕里的‘移到xy’塊里的坐標,是不是變了?”
她也發現了,“真的耶,那應該是小貓咪現在的坐標!”
“Scratch這點很方便。你還可以讓小貓動起來,邊走邊和你聊天。”我給她提新要求。
“我嘗試下,是這么寫的嗎?”她把她寫的代碼給我看:
“很對,給我看看效果。”
“非常不錯!再看看怎么讓小貓咪和我們對話吧?”我教她一步一步地做這個項目。
她問我,“對話的代碼在哪里?”
我告訴她,“在‘偵測’按鈕里,你看那個‘詢問并等待’塊。”
“看到啦,給你看看我寫的代碼!”
效果是這樣的:
我夸她,“做得不錯,貓貓問你的名字,舞臺下方也有輸入框讓你隨意輸入。”
她問我,“那小貓咪怎么知道我輸入的是什么呢?”
“這個問題問得好,你看偵測里的‘回答’塊,把它左邊的小方框點一下,就可以看到舞臺上會顯示你回答的內容。你試試吧~”
“我試試,還真的,挺簡單的,我明白啦!”這是她給我看的效果圖:
我趁機告訴她,“小貓咪知道了你的‘回答’后,你就可以設置它做出什么反饋啦,這就是Siri的基本原理。接下來你就自由發揮吧!”
“哈哈,我自己會玩啦!感覺編程不難嘛!”
過了五分鐘,她很得意地給我看了看她的代碼:
這是對話的效果圖:
我問她,“有沒有覺得今天的任務很簡單啊?”
她回答,“每次學一點嘛,我們又不趕時間。下次我們學什么呢?”
“這次呢,只是簡單接觸一下怎么聊天。但聊天的方式很受局限。下次我教你怎么運用‘數據’模塊里的‘鏈表’塊。比如,把我們聊天的內容放到‘鏈表’里,這樣可以更智能地聊天,甚至一直聊下去。”
然后我們就結束了這次玩耍,聊別的話題了。
本項目地址:
下次課,我會教女兒怎么運用‘鏈表’,就是下面這個:
我們也可以試試現在就創建一個‘鏈表’,看看里面有什么:
下次課,我會教女兒如何利用鏈表,讓我們做一個更智能的Siri。
轉載請注明:來自微信公眾號“君君玩科技”。