第十四次课堂小结

清明假期的最后一天,经历了前两天的春寒,今天的蓝天绿树,和风煦日,如果出游将是一件多么美妙的事情。可是考虑到我们已经确定的调课安排,free老师还是带着电脑来到了教室。果然,有同学出门未归,也有上次课缺席的同学迫不及待地询问上一节课的内容。

Anyway,我们开始了新内容的学习。

字符串操作只有三块积木,已经可以实现字符的统计、检测等功能。

而事实上,在实际应用中,对字符串有一个非常重要的操作,就是在字符串中插入字符。

scratch并没有提供插入字符的积木,怎么办呢?自己来设计。

即设计一个封装好的功能模块,而功能模块的输入和输出,以及具体实现过程,需要我们自己来完成。

还记得曾经学过的“新建积木”吗?

大家的“哦?啊?”以及充满询问的眼神,深刻地证实了学习遗忘曲线规律,嗯,没关系,我们首先,只要求大家从一个最简单的功能开始,譬如,将a插入到bcd的某一个位置。

这还不简单?不要小瞧哦,现有的条件是,不能在bcd里面直接插入a,只能将bcd逐个字符分解,再与a重新组合。

实际中插队的概念很好理解,但是分解成一句句代码就不那么容易了。

打个比方,有一排列好的队伍,来了位很拽的插队生,这个插队生固执要求插入到某个“C位”。同学们说了,插队生直接插到某一个位置,其他的队员依次后移即可。但是,问题是,Scratch环境下,某个位置的字符只能读出,而不能写入。

如何用三个基本的字符串操作来复现插队这个过程呢?

对人类的自然智能来说,这简直是故弄玄虚化简为繁?事实上,将自然智能按照规则分解为计算机智能,正是编程之所以能执行很多类似任务的原因。

解决的方案?划分两块区域,分别为插入操作前的队列区域A和插入操作后的队列区域B。大家在A区排好队,然后将队伍的第一个队员,第二个队员…依次按序走到一个区域B。在这个过程中,如果,当前位置和插队生要求插入的位置正好相同,那么就先安排插队生先走到B区域,然后再安排A区域当前的队员…一直到整个队伍都循环一遍。

新建的这个队伍,就是区域B的队伍,即插入后的字符串变量。因此,须新建一个字符串变量,使得它能够存储插入以后的字符串。

如何将以上功能进行扩展,变成通用的插入字符串的积木模块呢?

我们只需要定义4个变量来存储区域A、插队生C、插队位置n,和区域B,就可以实现任意的插入字符串的操作了。

自定义“插入字符串”积木模块实现后,我们完成了一个要求为干扰后的英文单词输入正确拼写的游戏。话说,可以考研娃们的单词记忆哦!

只需要将插入的字符和被插入的词组分别改为中文字符和成语,就变成了一个对成语进行修正的游戏啦。

这个,可以作为语文课上的小活动哦。

固定位置插入固定字符,似乎少了点趣味。可不可以将任意的字符或者是汉字插入到词组的随机位置中去呢?当然可以啦!定义一个随机字符串的变量,通过随机数抽取其中任意一个位置上的字符,作为干扰字,插入到词组的一个随机插入位置。这样一来,游戏的趣味性大大增加了。

可是有同学还在不断提问,输入的成语或者是单词都是事先确定的,怎么样使得不需要编程者每次都输入呢?在真正的游戏里面,在中国诗词大会里面,试题本身是一个庞大的体量,那么,如何把这么多的单词或成语,事先存储到我们的计算机我们的程序中呢?

有需求,就有动力和发现。有好奇,就有进步和成长。

可以预见,学编程的这些孩子们,很快就可以将“语数外史地生物化”等各科知识以游戏的方式展示给老师同学,为课堂增添乐趣了。

这样的课堂,该多么令人憧憬啊。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180407G1ABBR00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券