编程实
具体要求:
1). 点击绿旗,在舞台中心区域出现由10 x 10方格组成的LED屏幕;
2). 按下空格键,LED屏幕最外环方格全部点亮(方格变为黄色);
3). LED屏幕每秒向内点亮一层,其它LED灯熄灭;
4). 直到LED灯在最中心点亮2秒;
5). 重复2)、3)、4)要求。
思路分析
本题的核心功能有两个:
1). 构造10 x 10的LED屏幕
要构造一个10 x 10的LED屏幕,常规的方法是一排一排的克隆,每排克隆10个,一共克隆10排,代码也比较简单,使用嵌套循环就可以轻松实现。但是,这样我们就很难判断每个LED灯是处于哪一层,从而也就很难逐层控制LED灯的亮灭。所以我们要改变构造LED屏幕的方式,逐层克隆一个10 x 10的LED屏幕,一共分为5层,可以由内到外逐层克隆,在克隆的同时,给每个克隆体做一个标记(私有变量“层”),用来表示所属的层数。一旦我们知道每个LED灯所属的层数,要控制其亮灭就变得非常简单了。
2). 让LED屏幕由外到内逐层点亮
先从第五层开始,如果LED灯的“层”等于5,那就将这些LED灯的造型切换为黄色点亮状态,1秒之后,再判断LED灯“层”等于4的情况,一直到最中心的第一层。
实现步骤:
本题只有一个角色,就是LED灯,选择绘制角色
角色总共有两个造型,其中,造型1表示熄灭状态,造型2表示点亮状态。
编写程序,逐层克隆,构造10 x 10的LED屏幕
观察上图,由内到外来看,第一层是由4个LED灯构成的正方形,第二层是由12个LED灯构成的正方形,每向外一层,LED灯就增加8个,最外一层是由36个LED灯构成的正方形。对于正方形来说,我们可以先克隆一条边上的LED灯,然后旋转90度,重复4次这个操作即可,这里的重点是要计算出每一条边上要克隆的LED个数。处于中心的第一层,每条边只需要克隆一个LED灯,第二层则是3个,三到五层依次是5、7、9,根据规律得到对应每条边要克隆的LED个数为 2 * 层 - 1。每克隆完一层,本体都会回到该层的第一个LED位置,要克隆下一层,就需要将本体向左向上各移动一个LED的距离。
初始化角色,设置初始位置和大小,准备从中心开始克隆:
新建私有变量“层”,用来标记每一个克隆体所在的层
完整的代码如下:
可以通过测试,在克隆体启动时,让他们说出自己所在的层,如图,这就表明我们已经成功对它们做出了标记。

那怎么点亮和熄灭LED灯呢?这是通过切换造型来实现的。
再新建一个私有变量“点亮层”,默认值是5,表示从第五层开始点亮,然后变量增加-1,向内点亮一层。(之所以设置为私有变量,是因为所有的克隆体都会响应”当按下空格键“这个代码块,如果是全局变量的话,那么,变量每一次就不是增加-1了,而是增加-100了)
代码如下:
先从第五层开始,如果LED灯的“层”等于“点亮层”,那就将这些LED灯的造型切换为黄色点亮状态,1秒之后,再判断LED灯“层”等于4的情况,一直到最中心的第一层,当点亮层增加-1到0时,表示要重新回到第五层。
源码下载:Scratch少儿编程-LED屏幕流水灯【蓝桥省赛真题】
本站内容未经许可,禁止任何网站及个人进行转载。







