编程与数学在Scratch里自建模块(相当于在C语言里编写函数)
有时候,有一段代码在程序里被反复运行。这时,把这段代码编写成自建模块比较好。一,缩小了程序;二,使程序结构清晰,容易阅读、容易理解。譬如,上图是我们在2018年做第一个智能小车时,编的部分代码。仅仅是控制左、右电机运转的代码。有一个前进,一个后退,三个左转模式,三个右转模,共八个自建模块。这样,编写小车自控的主体程序时就非常方便,别人也容易看得懂。为啥左转、右转都有三种转法?这是三种不同的转向策略,在做避障、防跌、循迹、走迷宫时,可以适应各种情况。这个以后再说。
Scratch从2.0版开始,支持自建模块。上面的ArduinoScratch是在Scratch 2.0基础上增加了对Arduino控制板的支持。这个模块化Arduino开发工具有一个独一无二的优点,开发的程序,既可以是离线运行,也可以在线运行。而Arduino其它开发工具搞出来的程序都只能离线运行。这个也以后再说。现在有了3.0版,我们还是用3.0来介绍怎么做自建模块。2.0与3.0,大同小异。
我们先做一个简单的自建模块来说明创建过程:计算矩形的面积。点选模块库分类竖栏的最下面一个"自制积木",右侧顶部出现"制作新的积木"。点击,弹出标题为"制作新的积木"的对话框。上面垃圾桶下面就是待创建的新模块。标题是"积木名称",把它改为"求矩形面积"。下方是三个Radio按钮供选择。我们要建的这个模块,需要两个参数,长和宽,都是数字。因此,点选点选最左边的。上面"求矩形面积"的右侧出现了一个圆头框,内容是number or text(数字或文本)。把它改为"长"。再点一下最左边的按钮,在"长"的右侧又出现了一个圆头框,内容也是number or text,把它改成"宽"。现在,新建积木的名词设置好了,两个参数也定义好了。点右下角的"完成",又回到了编程界面。这时,在代码区多了一个标题为"定义[求矩形面积(长)(宽)]"新建模块头。现在,你就可以在下面编写这个新建模块的代码了。先建一个名为"面积"的变量。然后按上图拉入三个模块,这个新建模块就完成了。这个有个问题,模块"长"和"宽"在模块库里没有啊。在新建模块头部不是有"长"和"宽"吗?从那里去拉,你可以无限次去拉。
这个也要多练习。在编较大程序时,想想是不是需要自编一些模块?