锅说少儿编程
算法专题:植物大战僵尸
植物大战僵尸-收集阳光
复习列表基础
掌握检索技术
去重添加算法
顺序查找原理
逆序挑战练习
你玩过植物大战僵尸吗? 点击向日葵卡片,可以种向日葵,种向日葵是为了什么呢? 为了收集阳光,每棵向日葵都可以生阳光,收集阳光,就可以种更多的植物。
TASK 01
任务一:种向日葵
01
添加角色和背景:
背景:任意
角色:向日葵卡片、向日葵、阳光
02
向日葵卡片任务:
初始化大小和坐标(左上角),当角色被点击,广播"种向日葵"
查看代码参考
03
向日葵的任务:
1. 初始化状态,隐藏。
2. 当接收到“种向日葵”,克隆自己
3. 克隆体任务:等待0.1秒,显示,移到鼠标指针,直到按下鼠标,向日葵开始晃动。【这里为什么要添加“等待0.1秒”】
查看代码参考
04
出现问题:向日葵成倍增加
每次运行之后,发现每点击一次种向日葵,向日葵的数量非常多,这是怎么回事?为什么每次都翻倍,啥情况?
你发现问题了吗?
第1次种1棵向日葵
第2次种2棵向日葵
第3次种4棵向日葵
第4次种8棵向日葵
查看代码参考
问题的根源是本体和克隆体都进行了克隆,所以数量翻倍了。
TASK 02
任务二:区分向日葵的本体和克隆体
01
向日葵的任务
1. 添加变量“向日葵原型”(1代表本体,0代表克隆体)
2. 初始化,将“向日葵原型”设为1
3. 当接收到“种向日葵”,如果“向日葵原型”等于1,那么克隆自己
4. 当作为克隆体启动时,将“向日葵原型”设为0
参考答案
02
阳光的任务
1. 初始化大小,隐藏
参考答案
02
向日葵的任务:(新任务在原任务的基础添加或修改即可)
1. 添加列表X、Y
2. 删除X的全部项目,删除X的全部项目
3. 当按下鼠标之后,将鼠标的x坐标加入到列表X; 将鼠标的y坐标加入到列表Y;广播“生太阳”
参考答案
02
阳光的任务:(新任务在原任务的基础添加或修改即可)
1.添加变量“太阳原型”(1代表本体,0代表克隆体)
2. 初始化将“太阳原型”设为1
3. 当接收到“生太阳”,如果太阳原型=1,克隆自己
4. 当作为克隆体启动时,将“太阳原型”设为0
参考答案
TASK 04
任务四:收集阳光(设置移动状态)
01
阳光的任务:(移动)
1.当角色被点击,在1秒内滑行到左上角
参考答案
02
阳光的任务:(移动状态)
1.添加变量“移动中”(1代表移动,0代表没有移动)
2. 初始化将变量“移动中”设为0
3. 当角色被点击,将变量“移动中”设为1
4. 当阳光滑行到左上角,隐藏,将变量“移动中”设为0
5当作为克隆体启动时,如果“移动中”等于0,隐藏
参考答案