友情提示:视频教程观看时请手动设置清晰度。
又到了一周一度的教女儿编程的“Scratch时间”。
这次我想教她如何用Scratch做一个简单的Siri。当然,Scratch没有iPhone的Siri那么智能。家长可以拓展这节课里的“简易版Siri”和孩子互动,比如家长问问题孩子写答案,或者孩子写问题家长写答案。
先上效果图:
我依然是通过微信视频教我的乖女儿。
视频一接通,我就看到乖女儿对我那崇拜的表情。
我跟她说,“乖宝宝,今天我们做一个简单的Siri好不好啊?”
女儿听到Siri就有了兴趣,“好啊,我这就打开Scratch!”
我先告诉她做Siri的框架,“Siri每天被无数人调戏,真可爱。每次我们要调戏Siri,就打开它,调戏完了,就关闭它。下次要调戏了,再打开它。。。”
她问我,“是啊,网上还有很多花式调戏Siri的方法。比如“!&%&%&¥”
然后她跟我如数家珍地述说了调戏Siri的套路。
一切都是套路。
我把话题往编程上转,“所以我们需要一个循环结构?不然只能调戏一次,那多没意思。”
她反应也挺快,“对!我们可以用‘控制’里的‘重复执行’块。”
“好聪明啊你!接着说。”我鼓励她自己想。
她继续分析,“我们还需要选择一个背景,还需要小猫咪!”
我觉得我轻松不少,她已经上手了,“对!那你自己选择一个背景吧!”
这是她给我的背景(新建背景->从背景库中选择背景->户外->boardwalk):
我调侃她,“把小猫咪拖到地上吧,别让它掉海里啦!”
我又提醒她,“注意‘动作’按钮里的‘移到xy’块里的坐标,是不是变了?”
她也发现了,“真的耶,那应该是小猫咪现在的坐标!”
“Scratch这点很方便。你还可以让小猫动起来,边走边和你聊天。”我给她提新要求。
“我尝试下,是这么写的吗?”她把她写的代码给我看:
“很对,给我看看效果。”
“非常不错!再看看怎么让小猫咪和我们对话吧?”我教她一步一步地做这个项目。
她问我,“对话的代码在哪里?”
我告诉她,“在‘侦测’按钮里,你看那个‘询问并等待’块。”
“看到啦,给你看看我写的代码!”
效果是这样的:
我夸她,“做得不错,猫猫问你的名字,舞台下方也有输入框让你随意输入。”
她问我,“那小猫咪怎么知道我输入的是什么呢?”
“这个问题问得好,你看侦测里的‘回答’块,把它左边的小方框点一下,就可以看到舞台上会显示你回答的内容。你试试吧~”
“我试试,还真的,挺简单的,我明白啦!”这是她给我看的效果图:
我趁机告诉她,“小猫咪知道了你的‘回答’后,你就可以设置它做出什么反馈啦,这就是Siri的基本原理。接下来你就自由发挥吧!”
“哈哈,我自己会玩啦!感觉编程不难嘛!”
过了五分钟,她很得意地给我看了看她的代码:
这是对话的效果图:
我问她,“有没有觉得今天的任务很简单啊?”
她回答,“每次学一点嘛,我们又不赶时间。下次我们学什么呢?”
“这次呢,只是简单接触一下怎么聊天。但聊天的方式很受局限。下次我教你怎么运用‘数据’模块里的‘链表’块。比如,把我们聊天的内容放到‘链表’里,这样可以更智能地聊天,甚至一直聊下去。”
然后我们就结束了这次玩耍,聊别的话题了。
本项目地址:
简易版Siri
下次课,我会教女儿怎么运用‘链表’,就是下面这个:
我们也可以试试现在就创建一个‘链表’,看看里面有什么:
下次课,我会教女儿如何利用链表,让我们做一个更智能的Siri。
转载请注明:来自微信公众号“君君玩科技”。