Scratch 询问与回答

2020-08-02 22:02Intoweb
电脑报 2020年27期
关键词:字符串操作者李明

Intoweb

侦测组中询问与回答模块是Scratch人机交互的基础入口。我们需要熟练地掌握并运用在自己的程序中。下面我们通过自问自答的方式完成一段对话,除了用到询问与回答模块,还会初步涉及字符串的相关内容。

程序脚本规划:选择合适的背景Bedroom 1与角色Abby(绿衣)和Avery(紫衣)。

程序流程设计:当绿旗被点击后,角色Avery进行提问,操作者控制Abby的问题进行回答。

1. 在开始询问之前,我们先完成对角色的定位和对造型做基本设置。注意Avery需要将旋转方式设为左右翻转,并面向-90°方向。

ABBY造型

2. 侦测组的“询问‘What's your name?并等待”就是本文的主角了。询问模块里面的一段英文“Whats your name?”是Scratch自带的,我们可以修改它为中文“请问你叫什么名字?” 或者任何需要的对话。

在使用询问模块时,下方会出现一个对话框,对话框里面就填写我们的回答。回答的内容需要我们从外部输入,输入了回答的内容后,点击对话框后面的“√”或者敲回车键即可完成回答。

AVERY需要转为背向

另外,在角色显示时与隐藏时,询问的界面有所不同,角色显示时问句在气泡框中,角色隐藏时问句显示在对话框中。

3. 與询问模块配合使用的是“回答”模块,就在侦测组询问模块的下方。操作者输入对话框的字符串会被存入回答。

4. 为了在两个角色之间传递信息,使用广播。

Avery在询问后等待操作者输入姓名“李明”后将其存入回答中,发出广播“消息1”并等待。

为了让Abby收到消息后会说出“我叫李明”,我们需要用到运算模块组的“连接‘apple 和‘banana”模块来实现字符串“我叫”与回答内容“李明”的拼接。

5. 接下来的对话内容我们计划实现,Avery在询问“小李你今年几岁”,这个小李是根据操作者输入的姓名做提取的。我们将回答的姓名“李明”作为一个字符串,提取它的第一个字符存入变量“姓”。并用连接模块来询问,由于连接模块一次只能连接两个字符串,当需要连接的内容超出两个时就使用多个连接模块嵌套使用。

Avery询问年龄病等待

6. 回答内容除了可以作为字符串配合“说‘你好‘2秒”对话使用外,如果输入的回答是数字,还可以直接参与运算。现在我们让Avery计算几年(随机数)后Abby几岁。

Abby收到信息并回答

如果回答9岁,随机数为2年后,那么Avery说出“你今年‘9岁那么‘2年后,你‘11岁”。直接用加法运算符连接“回答”和变量“年”,就可以计算出11。用多个连接模块将语句合理拼接起来。

7. 调试

至此,整个完整的询问与回答的脚本完成了,我们执行程序运行,检测一下是否有错误。

询问者avery 代码

回答者abby的代码

询问与回答的编程设计,采用的是问与答交互的方式进行。同时,我们将字符串的相关知识引入这个案例进行了学习,特别要注意的就是字符串之间的组合方式。另外,变量也与字符串进行了拼接和计算。

猜你喜欢
字符串操作者李明
浅析汽车制造业人机工程标准
水稻插秧机主要故障维修技术要点
AnAnalysisofCohesiveDevicesinARoseforMissCaroline
一种基于PowerBuilder环境字符串相似度算法
SQL server 2008中的常见的字符串处理函数
倍增法之后缀数组解决重复子串的问题
最简单的排序算法(续)
理论联系实际的政策机理分析
看什么