为孩子准备的Scratch项目:聊天机器人

由 小石头编程 发表于 2024年04月12日
在本文中,我们将引导孩子们使用代码在Scratch中如何开发一款聊天机器人。 ### 最终成果 点击绿旗,然后再点击聊天机器人角色开始与其对话。 当聊天机器人问你一个问题,在舞台底部的文本框中输入你的答案,然后再点击右侧的蓝色打勾标记(或直接按回车),就可以看到聊天机器人的回复。 ![](https://www.codxz.com/media/upload/2024041216205694.png) ### 能学到什么 在本文中,我们可以学到一下技能: - 使用代码在Scratch中连接字符串 - 知道变量可用于存储用户输入 - 使用条件选择响应用户在 Scratch 中的输入 ### 开发一款聊天机器人 在开始创建聊天机器人之前,我们需要确定它的个性,考虑以下问题: - 聊天机器人的名字是什么? - 它在哪里生活? - 它快乐吗?严肃?滑稽?害羞?友好? - 它喜欢什么,不喜欢什么? 现在,我们要先给机器人选择一个形象,下面由几款形象比较合适,可以在Scratch中选择: ![](https://www.codxz.com/media/upload/2024041216361362.png) 在本教程中,我们选择Nano角色,当然了,我们还要选择一个背景,在这里我们找了一个背景,如下所示: ![](https://www.codxz.com/media/upload/2024041216390080.svg) 可以下载下来,添加到背景中,也可以选择Scratch自带的背景。 ### 如何让机器人说话 既然我们要设计一个有个性的聊天机器人,那我们就要编程让它跟我们说话。 点击你的聊天机器人精灵,加入以下代码,以便 当角色被点击时,它问你的姓名,然后 说:“你的名字真可爱!”。 代码如下: ![](https://www.codxz.com/media/upload/2024041216452314.png) 单击我们的聊天机器人以测试我们的代码。当聊天机器人询问我们的姓名时,请在舞台底部显示的框中键入,然后单击蓝色标记,或按回车。 ![](https://www.codxz.com/media/upload/2024041216413720.png) ![](https://www.codxz.com/media/upload/2024041216414078.png) 现在,每次你回答时,您的聊天机器人回复“你的名字真可爱!”。您可以使聊天机器人的回复更加个性化,以便每次输入其他名称时回复都不同。 将聊天机器人精灵的代码更改为 连接“嗨”和“回答”,所以代码看起来像这样: ![](https://www.codxz.com/media/upload/2024041216504603.png) 这时候,如果我们使用变量,将“回答”存储在变量“名称”中,这样在后面其他地方就可以使用这次回答,如下图所示: ![](https://www.codxz.com/media/upload/2024041216492787.png) 此时我们的代码应该改成这样: ![](https://www.codxz.com/media/upload/2024041216524425.png) 这时我们的代码应该像以前一样工作:聊天机器人应该使用您输入的名称打招呼。 ### 挑战更多问题 我们是否可以让机器人询问另外的问题,比如“你住在哪里”,然后使用变量存储这个答案。 代码应该如下: ![](https://www.codxz.com/media/upload/2024041216571683.png) ![](https://www.codxz.com/media/upload/2024041216572246.png) ![](https://www.codxz.com/media/upload/2024041216572685.png) ### 让机器人做决策 我们可以对聊天机器人进行编程,以根据收到的答案决定做什么。 首先,我们要让聊天机器人提出一个可以用“是”或“否”回答的问题。 更改聊天机器人的代码,聊天机器人询问“你还好吗?”,如果你回答“是”,机器人则说“那真是太好了!”,如果回答“否”,机器人则不说话。下面是更新后的代码 ![](https://www.codxz.com/media/upload/2024041217034792.png) ![](https://www.codxz.com/media/upload/2024041217060780.png) ![](https://www.codxz.com/media/upload/2024041217061618.png) 现在机器人对“否”的回答没有任何回应,我们可以将“如果”积木改成“如果-否则”积木,如果没有回答“是”,机器人则说“哦,真不幸”。 ![](https://www.codxz.com/media/upload/2024041217090193.png) ![](https://www.codxz.com/media/upload/2024041217085429.png) 现在可以测试下代码,检查机器人是否按照我们的代码回答问题。 我们可以在“如果-那么”里添加任何代码,比如,我们可以在输入答案时,给机器人切换服装 ![](https://www.codxz.com/media/upload/2024041217115222.png) ![](https://www.codxz.com/media/upload/2024041217114665.png) ![](https://www.codxz.com/media/upload/2024041217121478.png) 您是否注意到,在聊天机器人的服装发生变化之后,它会保持这种状态并且不会改变回原来的状态? 我们可以尝试这样做:运行代码并回答“否”,以便聊天机器人的脸变得不快乐。 然后再次运行代码并注意聊天机器人在询问姓名之前不会变回看起来很开心。 ![](https://www.codxz.com/media/upload/2024041217131508.png) 要想解决这个问题,可以在“角色被点击”下面添加切换服装的代码。如下图所示: ![](https://www.codxz.com/media/upload/2024041217141495.png) ### 再次挑战 我们还可以对聊天机器人进行编程以更改其位置! 我们可以设置聊天机器人问“你想去月球吗?”,然后当答案是“是”时改变背景,代码应该如下: ![](https://www.codxz.com/media/upload/2024041217185943.png) 当然,我们需要在代码开始时,将背景设置为space,来保证机器人在正确的位置: ![](https://www.codxz.com/media/upload/2024041217194269.png) 此时测试代码,发现当我们回答“是”的时候,背景切换成了月球。此时我们仍然可以添加更多的代码,比如切换背景后,机器人跳跃四次,代码如下: ![](https://www.codxz.com/media/upload/2024041217232601.png) ### 更多创意 使用您学到的知识去实现更多交互式聊天机器人的聊天吧。 以下是一些想法: ![](https://www.codxz.com/media/upload/2024041217242735.png) ![](https://www.codxz.com/media/upload/2024041217252483.png) ![](https://www.codxz.com/media/upload/2024041217252703.png)