- 我的第一堂编程课:孩子和家长都需要的编程思维
- 李国松
- 1892字
- 2025-02-27 02:52:55
3.3 道奇森的三段论——《爱丽丝漫游仙境》中的逻辑问题
强大的逻辑思维能力可以帮助我们快速分析和解决问题,理解事物之间的逻辑关系,对我们的成长有很大的帮助。
作为逻辑思维的第一次训练,我们今天就来动手编写一个逻辑问答的小程序,给小伙伴们展示一下我们的三段论谜题吧。
1 在本次程序中,小恐龙爱莎向小恐龙米莉提出了一个三段论式的问题,那么米莉能够给出正确的答案吗?
开始编写程序前,我们先来想一想,完成逻辑问答小程序需要使用多少个角色?
·开始按钮
·小恐龙爱莎
·小恐龙米莉
·酷客国王
·绿色钩
·红色叉
·正确提示(答对啦)
·错误提示(再接再厉)
哇!这个小程序中竟然包含了这么多角色,大家有没有感到惊讶呢?
2 厘清了程序中所涉及的角色,就可以为每个角色赋予特定的逻辑功能了。
·【开始按钮】:问答程序的“起点”,点击“开始”按钮可以启动问答流程。
·【酷客国王】:问答环节的主持人。
·【小恐龙爱莎】:提出问题。
·【小恐龙米莉】:做出回答。
·【绿色钩/红色叉/正确提示/错误提示】:显示结果和提示信息。
3 现在开始动手创建程序。
打开Scratch编程工具,选择新建一个作品。从素材库中上传背景图片和“开始”按钮角色。添加角色后记得调整角色的大小和位置哦。
4 为“开始”按钮角色添加逻辑代码。
当开始运行时,将“开始”按钮设置为“显示”状态,这样程序每次运行时都会在舞台中显示“开始”按钮,作为我们开始答题的起始标志。
小技巧
在程序开始时,将角色设定为一个明确的状态(如“显示”或“隐藏”状态),可以帮助我们更容易地判断程序运行结果是否正确。
5 继续为“开始”按钮角色添加逻辑代码。
“当角色被点击”命令可以为“开始”按钮设置一个点击事件,当按钮被鼠标点击时(如果使用的是智能手机或者平板电脑,则是手指点击),“开始”按钮会进入“隐藏”状态,并发出一个“开始”的广播消息。
广播消息
Scratch中的广播消息功能由“广播”命令和“当接收到()”命令组成。
与收发快递类似,使用“广播”命令发出消息的过程可以看作“寄出包裹”,使用“当接收到()”命令接收消息的过程可以看作“收到包裹”。
6 如何定义一个“广播消息”?
在“广播”命令中,点击下拉框中的“新消息”,会弹出一个设置新消息名称的对话框,在这里输入消息的名称,如“开始”,然后点击“确定”按钮即可。
现在运行程序并点击“开始”按钮,就可以把“开始”消息发送出去了。
7 当小恐龙爱莎使用“当接收到()”命令接收到广播消息后,就可以开始提出她的问题了:
“所有花都是植物。”
“玫瑰是一种花。”
“那么结论是?”
8 “说()”与“思考()”。
在上面的程序中,小恐龙爱莎使用“说()(2)秒”和“思考()(2)秒”命令提出了自己的问题。
在“外观”模块中,有4个与“说”和“思考”相关的命令,它们“长”得十分相似,我们来看看它们的区别是什么。
如上图,左侧是“说”命令,右侧是“思考”命令,大家发现有什么不同吗?
“文字框的样式不同!左侧的文字框有个小尾巴,而右侧的文字框是由三个小圆圈组成的。”
非常好!那么“说(你好!)”和“说(你好!)(2)秒”这两个命令又有什么区别呢?
“说(你好!)(2)秒”命令多了一个时间选项,在指定时间内角色说出的“你好”会一直显示,直到2秒后才消失。
同时,跟在“说(你好!)(2)秒”命令后的其他命令也会等待角色说完“你好”才会继续运行。
“思考”命令的运行效果与“说”是类似的。
大家可以动手试试下面的两个程序,看看运行结果有什么不同。
9 现在爱莎提出了她的问题,并发出一个“答题”的广播消息。根据三段论式谜题的逻辑,小恐龙米莉应当怎么回答呢?
“结论:玫瑰是一种植物!”接收到“答题”消息后,小恐龙米莉立刻大声说道。
10 “米莉说的对吗?”
酷客国王作为主持人,向大家提出了这个问题。
11 如何将自己的答案告诉酷客国王呢?
我们添加正确(√)和错误(×)按钮来提交答案。当接收到“主持人提问”消息时,显示按钮;当按钮被点击时,发出“答对啦”或“再接再厉”的广播消息。
12 展示答题结果。
当接收到“答对啦”或“再接再厉”消息后,在舞台中展示奖杯和闪光的背景,这样一个答题的小程序就完成了,大家可以运行程序,邀请小伙伴们来答题啦。
正确提示
错误提示
背景
13 在答题过程中,我们有没有发现什么问题呢?
当点击正确或错误按钮后,程序会弹出成功或失败的提示。但是如果我们连续点击这两个按钮,就会发现两个提示都显示出来了,这样就不容易判断对错了,有什么办法可以解决这个问题吗?
我们添加一个“重置提示”消息,每次显示提示前,都将所有提示的状态重新设置为“隐藏”。
这样,当我们再次发送“答对啦”或“再接再厉”消息时,就可以只展示匹配的答案了。