APP下载

跟麦咭学编程

2019-02-10麦咭编程

第二课堂(课外活动版) 2019年12期
关键词:链表脑筋格子

麦咭编程

放学完成作业后,麦咭想起今天在学校的时候,宾果出了一个脑筋急转弯题目将自己考住了,于是拿出一本腦筋急转弯的书看,争取明天去学校的时候可以问一个宾果没有看过的脑筋急转弯题,将宾果难住。在看书的过程中,麦咭想到了可以编写一个脑筋急转弯的程序,能自动出题,然后让大家一起玩。

1. 理解链表的概念。

2. 掌握新建链表的方法。

3. 掌握将记录添加到链表、删除链表中指定记录的方法。

1. 程序设计

2. 链表的基本知识

如图1所示,把变量比作一个置物的格子,它可以放置任何物品,但同时只能放置一个,下一个放进去时,自动替换掉前一个。相比变量而言,链表就是多个置物的格子,每个格子都可以放置物品。取用物品时,报物品的序号即可,也可以添加、删除指定位置的物品。

3. 新建链表

打开网页http://scratch.maiji100.cn/Scratch.html,执行“文件”“新建项目”命令,新建项目文件。

如图2所示,为了存放脑筋急转弯的题目与答案,我们需要新建链表。单击积木区/脚本/数据/■指令,弹出“新建链表”对话框。

然后使用相同的方法再新建一个链表,输入链表名称为“答案”,用来存放脑筋急转弯题目的答案。

如图3所示,输入链表名称并单击“确定”按钮,我们可以观察到舞台区和积木区发生了变化。

如图4所示,这时,我们就可以将脑筋急转弯的题目和答案分别添加到两个链表中。

图4 将题目添加到链表“题目1”中

如图5所示,以此类推,我们通过同样的方法为麦咭继续添加第二个、第三个脑筋急转弯题目,如:“为什么暑假比寒假长?”“一个盒子最少有几个边?”

图5 向链表添加题目内容后的窗口

我们再使用相同的方法,将脑筋急转弯的答案加入链表“答案”中。

4. 程序搭建

如图6所示,将题目与答案添加到链表中,每添加一次,链表长度增加一些。程序停止,链表并不会清空。程序每运行一次,链表就会增加一些记录。所以,点击“绿旗”运行程序,第一步是删除链表里面所有的记录,再逐条添加记录到链表中。

通过程序我们知道,每输入一个题目给链表题目1,对应会输入一个答案给链表答案。依据链表的基本知识我们知道,它们是放入不同的置物的格子,但序号是一样的。为了保证出题的随机性,我们需要新建变量“题目序号”,把题目序号设定为“1-链表‘题目1的项目数”的随机数。如图7所示。

如图8所示,程序从题目库里面随机选取题目后,就需要让玩家输入答案,使用询问并等待指令。

如图9所示,当玩家输入答案后,程序就需要把玩家的答案与答案库里面的答案进行比对,比对正确则输出:“‘回答,回答正确,你太厉害了!”比对错误则输出:“‘回答,呃,回答错误,再接再厉!”

5. 程序清单

角色的完整程序清单如图10所示。

图10 脑筋急转弯程序

通过本节课的学习,我们已经了解了链表的概念,掌握了新建链表以及把记录添加到链表中的方法。为了巩固今天学到的这些编程知识,同学们不妨换一个脑筋急转弯题来试试哦!

(编辑 巧克力)

猜你喜欢

链表脑筋格子
基于二进制链表的粗糙集属性约简
数格子
基于链表多分支路径树的云存储数据完整性验证机制
填出格子里的数
格子间
脑筋转转转
脑筋转转转
格子龙
一种基于有序双端链表的高效排序算法
链表方式集中器抄表的设计