【青少年编程】【三级】病毒传染模拟程序
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。
微信后台回复“资料下载”可获取以往学习的材料(视频、代码、文档)。
病毒传染模拟程序
1. 准备工作
(1)删除小猫角色,绘制一个绿色的小圆圈角色,命名为“Person”,代表健康的人;
(2)设置“人口总数”、“健康人数”、“感染人数”、“全部感染时间”变量。
2. 功能实现
(1)当程序运行时,将角色“Person”设置为隐藏,将计时器归零;
(2)使用克隆功能,克隆出20个健康的人,健康人出现在舞台随机位置,静止不动;
(3)克隆1个人,将其颜色特效设置为“125”(红色),代表已感染人;
(4)克隆出的感染人在舞台上面向随机的方向后,不断运动,当健康的人被碰到时,将会被感染,将它的颜色设置为“125”;
(5)从第一个受感染者开始,使用计时器记录所有人被感染的时间,当所有人被感染时,停止计时;
(6)变量“人口总数”始终为21,“健康人数”和“感染人数”不断改变,最后变量“全部感染时间”显示全部感染的时间。
3. 设计思路与实现
(1)角色分析
- 角色:一个绿色的小圆圈角色,命名为“Person”,代表健康的人;
(2)背景分析
- 背景:默认白色背景。
(3)所用积木块介绍
a. 运动类
- 角色移动指定的步数,正数就是向前,负数就是向后。
- 角色移动到随机位置,下拉可选“鼠标指针”或其他角色。
- 将角色朝向某个指定的方向。
- 角色碰到边缘后就往回走。
b. 外观类
- 在舞台中显示当前角色。
- 在舞台中隐藏当前角色。
- 将角色的颜色特效指定一个具体的值,下拉三角可以选择“鱼眼”,“漩涡”,“像素化”,“马赛克”,“亮度”,“虚像”
c. 事件类
- 程序开始积木块。
- 点击舞台区的绿旗,执行以绿旗开始的所有程序脚本。
d. 控制类
- 时间间隔,等待指定的时间后执行后面的指令。
- 循环积木块:一遍一遍地执行包起来的积木序列。
- 重复执行指定的次数后停止,该积木块通常在角色移动等场景中使用。
- 循环积木块:一遍一遍地执行包起来的积木序列。
- 重复执行模块里面的积木指令,相当于一个死循环,永不停止,除非在某个地方结束脚本。
- 条件判断语句,如果条件返回值为真(bool值),那么执行模块里面的积木指令,如果条件不成立,返回值为假,执行条件判断模块后面的程序指令。
- 条件判断语句,如果条件满足执行那么模块里面的积木指令,如果条件不成立,返回值为假,那么执行否则模块里面的积木指令。
- 将所有的角色和背景的脚本停止执行,下拉倒三角还可以选择“停止当前角色的其它脚本”和“这个脚本”。
- 当作为克隆体启动时,该克隆体执行的指令
- 产生自己的一份克隆,下拉倒三角还可以选择其他角色
e. 侦测类
- 侦测模块,碰到指定颜色,条件成立,返回逻辑真,否则返回逻辑假
- 当我们打开Scratch的时候,计时器就工作了,它不停的计数,以”毫秒"为单位,不停的涨,换句话说,我们打开scratch多长时间,它就记了多长时间的值,当然,这个值对我们没有什么用,所以我们需要使用计时器的时候,先使用侦测里的计时器归零。
- 初始化计时器,让计时器归零重新开始计时
f. 运算类
- 随机得到设定区间中的任一值。
- 比较运算,左边等于右边返回true值(真),否则返回false值(假)。
g. 变量类
- 建立一个变量,输入变量名称,然后选择适用于所有角色还是适用于当前角色。
- 设置变量的值为给定值,通常用于初始化变量。
- 设置变量的值为自身的值加X。
(4)角色、舞台背景设置
a. 角色设置
按照题目要求,删除默认的小猫角色。
在角色区,点击“绘制”菜单,绘制一个绿色的小圆圈角色,命名为“Person”,代表健康的人。
使用“画圆工具1”绘制圆(按住Shift键)。
使用“填充工具2”为圆填充绿色,无轮廓“轮廓工具3”。
b. 舞台背景设置
默认舞台背景设置,无需修改舞台背景。
(5)脚本编写
创建变量:Id。即为每个克隆体进行编号,只有这样才能区分出不同的克隆体。
根据题目要求,创建以下四个变量:“人口总数”、“健康人数”、“感染人数”、“全部感染时间”。
a. 角色:
流程描述:
当按下绿棋时:
- 开始:点击绿棋,开始执行代码。
- 本体状态:隐藏
- 初始化变量的值:“Id”=1;“人口总数”=21;“全部感染时间”=0;“健康人数”=20;“感染人数”=1;
- 重复执行20次:按照题目要求克隆20个健康的人
- 克隆自己
- 等待0.01秒
- 本体移动到随机位置
- 将变量“Id”增加1
- 将本体的颜色特效设定为125(红色),代表已感染人
- 克隆自己
- 计时器归零
当克隆体启动时:
- 显示克隆体
- 如果克隆体的“Id”=21,即该克隆体表示已感染的人
- 面向任意方向
- 重复执行移动10步,碰到边缘就反弹,
- 否则,即其它20个克隆体
- 重复执行,侦测是否碰到红色(已感染的人),如果碰到,将自身颜色修改为红色,健康人数-1,感染人数+1;侦测健康人数是否等于0,如果等于0,将“全部感染时间”设为“计时器”(记录所有人被感染的时间),停止全部脚本。
(6)结果展现
插入最后的视频
4. 评分标准
(1)能正确设置“人口总数”、“健康人数”、“感染人数”、“全部感染时间”变量。(2分)
(2)能使用克隆功能,克隆相应人数的健康人和受感染人。 (2分)
(3)健康人静止不动,感染的人在舞台上随机方向的移动。 (2分)
(4)在健康的人碰到受感染人时,能将其颜色设置为“125”,表示已经受到感染。 (2分)
(5)能正确使用计时器,准确记录所有人被感染所使用的时间。 (2分)
5. 考点分析
三级考试大纲与说明
(一)考核目标
进一步认识编程软件的高级功能,对随机数的产生、变量的设置,基于变量的逻辑运算与关系运算的组合使用,解决实际问题;考查画笔模块的更高级操作,应用广播来传递数据,应用克隆来生成克隆体,并灵活控制克隆体;考查对选择语句、循环语句的嵌套使用,以及运用循环简化多次的反复操作程序的理解程度。同时针对参加 3 级考试的学生 将进行多种情况的逻辑处理和交互控制能力的考查。
(二)能力目标
学生对编程软件的进一步综合操作能力,考查对随机数,变量,广播,克隆等知识的掌握,同时考查学生对已掌握知识的深度综合应用,另针 对参加 3 级考试的学生将进行难度更高的逻辑推理能力的考查。
(三)考试标准
1、掌握编程环境的高级功能,并理解其中的基本概念。
- 1)能够新建、删除变量,修改变量名;
- 2)能够设定、增减变量值,在舞台区显示、隐藏变量;
- 3)能够灵活使用画笔及设置画笔的各项参数;
- 4)掌握逻辑运算与关系运算的组合使用;
- 5)能够运用循环简化多次的反复操作程序;
- 6)能够应用广播来传递数据,实现不同角色之间的交互;
- 7)能够理解广播和广播并等待的区别;
- 8)能够应用克隆来生成克隆体,并灵活控制克隆体。
2、理解并在程序中使用随机数和变量。
- 1)理解随机数的概念,能够产生一个随机数;
- 2)理解变量的概念,理解变量的作用域;
- 3)能够通过变量的变化让程序跳转到不同的部分;
- 4)程序中包含不同条件选择语句的嵌套;
- 5)程序中包含循环语句的嵌套;
- 6)程序中包含根据选择语句的真假跳出循环程序;
- 7)循环语句、选择语句嵌套的综合运用。
(四)知识块
- 1. 随机数:随机数的产生,随机数的应用场景判定选取
- 2. 变量:新建变量,初始化变量,修改变量名,删除变量,变量值的设定、增减,变量值变化引起效果的变化,变量的显示和隐藏,变量设置为滑杆模式, 变量的作用域,不同应用场景
- 3. 循环语句:运用计数循环简化多次的反复操作程序、运用条件循环简化多次的反复操作程序
- 4. 循环与选择的嵌套:选择语句的嵌套、选择嵌套和逻辑运算符综合运用、循环语句中包含跳出循环、循环语句的嵌套、选择语句与循环语句的嵌套的综合运用
- 5. 画笔:颜色(亮度,饱和度,对比度),图章,擦除图章
- 6. 广播:广播传递数据,广播并等待,多角色通过广播交互,广播的使用场景
- 7. 克隆:克隆自己,删除克隆体,克隆体启动的设置
- 8. 逻辑推理,编程数学:判断条件的逻辑关系
备注:
- 为本题涉及到的知识点。
- 为需要掌握,但本题未涉及到的知识点。
(五)题型配比及分值
相关文章:

UI培训分享:UI设计行业常见术语有哪些?
学会UI设计之后,大家后面就要进入到真正的UI设计行业了,那么关于UI设计行业的常见术语大家也要做一些了解,尤其是新人,这对后面的工作会很多有帮助,本期UI培训教程就给大家介绍一下UI设计行业常见术语有哪些? UI培训分…

面试常用SQL整理
我们都知道面试的时候通常都会考数据库部分的知识,所以在此整理了下我们常用的面试中常用的一些查询语句SQL,本人测试数据库为SQL Server2008 首先在数据库中建立一个测试库,此处用DavidTest代替 数据表与相应测试数据 USE [DavidTest] GO /*…

【青少年编程(第25周)】隔离终于解除了!
2021年08月08日(周日)晚20:00我们在青少年编程竞赛交流群开展了第二十五次直播活动。我们直播活动的主要内容如下: 首先,我们奖励了上周测试超过60分的小朋友。 其次,我们鼓励刚刚加入学习的小朋友参加8月14日开营的&…

JetBrains大力推广Kotlin为哪般?
在之前一篇备受关注的文章“Kotlin与Java之争”中,Vasiliy Zukanov讲述了发生在Kotlin与Java之间的一场没有硝烟的战争,并认为企业从Java转向Kotlin可能需要付出更大的代价。最近,Vasiliy继续发文,对JetBrains大力推广Kotlin背后的…

哪些人适合参加Python培训班?
哪些人适合参加Python培训班?确实,不是所有人都适合参加Python培训班的,有一定基础的同学会选择自学,零基础的同学比较适合参加Python培训班,来看看下面的具体介绍。 哪些人适合参加Python培训班? 1、学生/零基础学员:如果你自制…

关于jsp页面中的pageEncoding和contentType以及html中的meta标签中字符集的设置(转)...
转载:《关于JSP页面中的pageEncoding和contentType两种属性的区别》 pageEncoding是jsp文件本身的编码 contentType的charset是指服务器发送给客户端时的内容编码 JSP要经过两次的“编码”,第一阶段会用pageEncoding,第二阶段会用utf-8至utf-…

JNI调用实例
1. 环境 Windows7-64Bit VS2010-32Bit JDK1.8-64Bit 2. 步骤 2.1 创建NativePrint类 public class NativePrint {public native void nativePrint(); } 其中包含一个native方法,这个native方法是通过C实现的,C的实现代码最终是生成dll文件,然…

【青少年编程】【三级】加法出题机
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料(视频、代码、文档&…

Python培训教程分享:Python异常机制
在学习Python技术的时候,我们经常会遇到一些异常,例如导致程序在运行过程中出现的中断或退出,我们都称之为异常,大多数的异常都不会被程序处理,而是以错误信息的形式展现出来。本期Python培训教程就算教大家关于Pyt…

SharePoint【调试,诊错系列】-- 一种调试Sharepoint2010 Solution的快捷方式
Visual Studio 2010 支持通过F5来调试Sharepoint Solutions,但这种方法却很难用在调试workflows, event recievers, custom controls上,我们往往通过 "Attach to process..."来调试这些模块,关于如何Attach到正确的Process…

通往SQL Server复制的阶梯:一级- SQL服务器复制介绍
链接:http://www.sqlservercentral.com/articles/StairwaySeries/72274/ 文章:Stairway to SQL Server Replication: Level 1 - Introduction to SQL Server Replication 通往SQL Server复制的阶梯:一级- SQL服务器复制介绍 By Sebastian Meine, 2012/12…

【青少年编程】【三级】青蛙捕虫
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料(视频、代码、文档&…

UI培训教程分享:UI设计的分类有哪些?
本期为大家介绍的UI培训教程是关于UI设计分类这块的,在UI设计中,我们常应用到的终端设备可大致分为三类,分别为移动端UI设计、PC端UI设计、其他终端UI设计。 UI培训教程分享:UI设计的分类有哪些? 1. 移动端UI设计 移动端一般指移…

slider(滑动条)控件模版,样式--用图片定义控件模版
初接触wpf,想自己用图片做一个个性slider滑块控件,网上找了很久无果。后来一些机缘巧合看别人源码的时候找到了类似的,然后自己再查了一下msdn,大概弄懂了。 我们先来看看slider控件组成元素。 Slider控件组成: 用图片…

360浏览器调用selenium
2019独角兽企业重金招聘Python工程师标准>>> 360浏览器调用selenium package com.demo;import java.io.File; import java.io.IOException;import org.junit.Before; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver;…

【组队学习】【28期】R语言数据科学
R语言数据科学 论坛版块: http://datawhale.club/c/team-learning/36-category/36 开源内容: https://github.com/datawhalechina/team-learning-program/tree/master/RLanguage 学习目标 向零基础的同学介绍如何利用R语言进行数据分析。通过学习&…

零基础参加Java培训班合适吗
零基础参加Java培训班合适吗?对于这个问题,首先答案是肯定的,零基础学习java技术最靠谱最快速的方法就是报java培训班进行学习了,来看看下面的详细介绍就知道了。 零基础参加Java培训班合适吗? 能够想到参加Java培训班学习的同学一般分为三…

用VS(c#)创建、调试windows service以及部署卸载
同事问到windows service的东东,现在整理一下,用c#如何创建一个windows service,以及如何调试、部署、卸载。 一、创建windows service 1. 打开VS2008,新建一个Project, Project类型选择Visual C#-Windows,在Templates…

【组队学习】【28期】基于Python的会员数据化运营
基于Python的会员数据化运营 论坛版块: http://datawhale.club/c/team-learning/37-category/37 开源内容: https://github.com/datawhalechina/team-learning-data-mining/tree/master/MemberOperations 学习目标 数据化运营是业务知识与编程技能…

异步系统接口调用流程图
2019独角兽企业重金招聘Python工程师标准>>> 异步系统接口调用流程图 博客分类: java ................................... 转载于:https://my.oschina.net/xiaominmin/blog/1597725

java培训教程分享:Java中用户如何自定义异常?
我们在学习java技术的时候应该有了解过,在java中是定义了很多的异常类的,虽然这些大量异常类可以帮助我们描述编程时出现的大部分异常情况,但是在程序开发中有时可能需要描述程序中特有的异常情况,例如在设计divide()方法时不允许…

【组队学习】【28期】基于transformers的自然语言处理(NLP)入门
基于transformers的自然语言处理(NLP)入门 论坛版块: http://datawhale.club/c/team-learning/39-category/39 开源内容: https://github.com/datawhalechina/Learn-NLP-with-Transformers 学习目标 自然语言处理(Natural Language Pro…

java io在文件结尾持续添加内容
[代码] java io在文件结尾持续添加内容 public static void write(String path, String content) {try {File f new File(path);BufferedWriter output new BufferedWriter(new FileWriter(f,true));output http://www.szhaoexport.com/linked/20130222.do; .write(content &…

Docker1.12让容器使用和宿主机同一个网段
2019独角兽企业重金招聘Python工程师标准>>> Docker1.12让容器使用和宿主机同一个网段 博客分类: docker 由于开发的一些特殊需求,需要将容器部署在与宿主机同一个网段中,部署步骤如下:步骤一:创建网络$ …

java培训分享:java培训架构师学习线路图
本期java教程分享主要是讲解关于java培训架构师方面的内容,主要针对java架构师的学习线路图进行一个知识点的概括,下面来看看学习java架构师都需要了解哪些内容吧。 java培训分享:java培训架构师学习线路图 1、常见模式与工具 学习Java技术体…

设计中涉及到的dip、dp、px、sp等单位说明
在进行UI设计中常会遇到各种数值单位,开始使用时也常搞混,于是搜集了单位解说的文章与大家一同分享 dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用…

【组队学习】【28期】Datawhale组队学习内容介绍
第28期 Datawhale 组队学习活动马上就要开始啦! 本次组队学习的内容为: 吃瓜教程——西瓜书南瓜书李宏毅机器学习动手学数据分析集成学习SQL编程语言R语言数据科学基于Python的会员数据化运营数据采集从入门到精通基于transformers的自然语言处理(NLP)入…

多线程读一个全局变量要不要加锁?还是说只是当修改全局变量的时候才要加锁?...
如果所有线程都只读取该变量的话不必加锁,因为仅读取不存在破坏数据的风险,如果有线程写该变量的话不管读取还是写入都要加锁的。

java培训教程分享:Java编写软件代码自动提示功能
本期的java培训教程分享主要是介绍的java编写软件代码的一个自动提示功能,很多零基础和初学java的同学们对这一块还不是很了解,Eclipse for android 实现代码自动提示智能提示功能,以下是介绍 Eclipse for android。 java培训教程分享&#x…

iOS WebviewJavascriptBridge 源码研读笔记
这两天接近元旦,事情稍微少些,有些时间,索性写点什么,就从最擅长的iOS混合开发写起了,由于iOS开发经验不到四年吧,期间还搞了一年半的前端,有些知识可能还是积累的不足,能力不足&…