Scratch 模拟病毒传染小程序
欢迎来到我的博客!坚持比努力重要。
目录
学习目标
- 通过制作病毒传染程序熟悉变量模块中私有变量和全局变量的区别。
- 通过变量列表使用熟悉Scratch变量列表的使用。
- 通过背景音乐的设置了解声音类积木基本操作。
程序目标
(一)程序中变量使用:点击绿旗后,伴随着音乐,实现实时测出人数的变化。
(二)程序变量列表使用:点击绿旗后,通过变量列表人数变化,使得人数发生变化。
(二)程序中声音设置:点击绿旗后,按下提前设置好的按键,能播放自己上传背景音乐。
程序流程图
- 自制程序流程图
背景和角色
- 背景
项目详解
1.变量模块
我们都知道scratch中的变量有两类,全局变量和私有变量。克隆变量因其隐秘,不为我们许多人所知。
1.全局变量
**任何角色都可以调用,使用简单。
2.私有变量
在特定角色中,我们可以设置新 ’ 变量 ’ 仅适用于当前角色,私有创建。
因为是私有变量,则只能被当前角色调用,注意:其他角色的私有变量可以重名,全局变量不可重名。
创建完私有变量可以看到,屏幕上显示:
可以看到私有变量前面有角色名称
这里我们会思考,如何调用其他角色的私有变量那?我们通过侦测模块找到调用的方法
转化为下图
其中,猫是角色1的私有变量名 ,此时,我们便可调用私有变量,因为私有的,所以,私有变量值发生改变,不会影响其他变量。
3.克隆变量
为什么会有克隆变量那?比如,我们模拟病毒传播的程序中,假设,有100个健康的人,对于每一个人来说,他们都有自己的编号,属性,而这些变量有相同的属性,如果我们此时就要手动新建100个变量,这的样操作太麻烦,我们选择克隆,加一个循环便可以克隆100个,克隆本质,类似于数组,都是同一属性的事物。
新建被克隆的变量,原件
进行克隆操作,并使克隆变量的值+1
可以看到克隆体的变量值,全是1,没有变?为什么那?
因为克隆变量是一个独立的个体,克隆变量的值是 0 ,每次得到克隆变量的值也是0,不会,通过对一个克隆体操作,影响全部克隆体的数值,所以,下面引入一个中间变量,既控制变量的次数,也可以改变克隆得到克隆体的值
可以看到值发生变化
2.变量列表模块
创建变量列表,由于病毒传播过程中,健康,感染,治愈的人数时在发生变化,故建立一个变量列表,每一个列表代表一群人,他们具有相同属性,比如:健康
3.音乐模块
为了增强程序带给人的喜悦,快乐的感觉,加入了音乐选项,我们可以点击图片所示按钮,上传音乐:
4.代码区
1. 变量初始化
设置初始值,当绿旗被点击时,播放音乐,
模拟病毒未被传染的状态,引入人口总数全局变量,设置初始值100,健康的人数也是100,但是,程序开始后,随人口流动,动态检测,有人患病,而健康,感染,救治的人数都会发生变化,可以通过对应(健康/感染/救治)列表更新来检测,实时更新的(健康/感染/救治)人数变化。
2.模拟100个人
由于人数太多,建立100个变量,耗时耗人力,又存在相同的特性,通过克隆来解决100个变量,通过改变我的变量值(我的变量=被克隆变量=点点),改变克隆变量的值
3.0对克隆变量的操作
初始化,由于模拟人群流动,故设置小球,出现在随机位置和移动的方向不同,
4.传播
其次,就是设置是否被感染,如果感染吗,就通过外观颜色进行变化,设置为玫红色,同时,进行列表更新 (和5治愈的类似,故不做说明)
5.治愈
通过检测,隔离速度和感染人数,只有两者值大于0,我们才能进行治疗,到治愈,如何治愈那,通过判断编号值和健康中第一项的值,如果两者值相同,说明救治成功,删除健康中第一项,始终是将第一项加入治愈中,所以,他的值只会被点点角色改变(注意:编个号的值始终为0 ,但它始终是第一项,健康/感染/治愈的第一项始终在变化),当克隆体减少,被救治的人数就越多。