引言
最近不少家长在问:孩子学了一段时间的图形化编程,想找个"看得见、用得上"的赛事练手,该选哪个?
这里给大家推荐一个含金量高、又非常适合图形化创作的方向------北斗杯全国青少年空天科技体验与创新大赛 。这项赛事由中国科学院空天信息创新研究院、中国光华科技基金会联合主办,早已入选教育部白名单。其中「北斗电力巡检应用挑战赛」赛项明确要求参赛队伍选择支持图形化编程的软件来控制设备,对用 Scratch 这类积木式工具创作的孩子非常友好。
今天我们就围绕"电力巡检"这个真实场景,原创一个图形化小游戏《电网巡检车》,把列表、循环、条件、变量、自制积木、广播六大考点串起来练一遍,既能当备赛作品,也能直接拿去参赛。
一、项目目标:电网巡检车
玩法设定:你是一名电网巡检员,操控一辆巡检小车沿输电线路行驶。沿途会随机出现"故障点"(火花特效),小车靠近即可"修复";每修复一个故障点得一分,电量随时间消耗,电量耗尽或所有节点巡检完毕即结算。关卡逐级加长,故障点更多。
核心目标拆解:
- 用列表存储电网节点坐标与故障点位置;
- 用克隆体生成沿途的故障点与小火花;
- 用变量记录电量、分数、当前关卡、小车坐标;
- 用循环驱动小车持续前进并遍历节点;
- 用条件判断"到达节点 / 发现故障 / 修复成功 / 电量耗尽 / 过关";
- 用自制积木封装重复动作(画电网、生成故障、修复特效、过关庆祝、重置);
- 用广播解耦各模块,让"开始巡检、发现故障、修复成功、电量耗尽、过关、重置"互不耦合。
二、核心考点
| 考点 | 在本项目中的用途 |
|---|---|
| 列表 | 存电网节点坐标 (x,y)、故障点索引,方便循环遍历 |
| 循环 | 主循环驱动小车前进;重复执行 遍历每个节点做判定 |
| 条件 | 判断小车是否到达节点、是否碰到了故障点、电量是否为 0 |
| 变量 | 电量、分数、关卡、小车X、小车Y 等状态量 |
| 自制积木 | 把"画一段电网""生成故障""修复特效""过关庆祝""重置"封装成可复用积木 |
| 广播 | 用消息解耦:发现故障→广播"修复成功",主程序只管监听,不关心谁触发 |
这六个考点几乎覆盖了中小学图形化比赛 80% 的评分点,吃透这一个项目,同类赛题都能举一反三。
三、积木拆解与解法
下面按"数据 → 主循环 → 条件 → 克隆 → 自制积木 → 广播"的顺序拆解。
1. 数据准备(列表 + 变量)
- 新建列表
节点列表,依次存入每个电网节点的x,y(例如120,80260,80...)。 - 新建列表
故障列表,随机在部分节点下标打上"故障"标记。 - 变量:
电量=100、分数=0、关卡=1、小车X=起点X、小车Y=起点Y。
2. 主循环(循环驱动前进)
当 ⚑ 被点击
调用 重置
广播 [开始巡检] 并等待
重复执行:
将 [小车X] 增加 (速度)
如果 <小车X > (下一节点x)> 那么
广播 [到达节点]
end
如果 <电量 = 0> 那么
广播 [电量耗尽]
退出循环
end
end
3. 条件判定(到达 / 发现 / 修复 / 结束)
当 接收到 [到达节点]
将 [节点索引] 增加 (1)
如果 <故障列表的第(节点索引)项 = [故障]> 那么
广播 [发现故障]
否则
将 [分数] 增加 (1) // 正常巡检 +1
end
如果 <节点索引 = (节点列表的项目数)> 那么
广播 [过关]
end
当 接收到 [发现故障]
说 [修复中...] (0.6) 秒
将 [分数] 增加 (2) // 修复故障奖励更高
将 [电量] 减少 (5)
广播 [修复成功]
4. 克隆体(故障点 + 火花特效)
当 接收到 [开始巡检]
重复执行 (节点数) 次:
如果 <该节点是故障> 那么
克隆 [故障点] 角色
end
end
当 作为克隆体启动时
移到 (对应节点坐标)
显示
重复执行:
将 [大小] 在 (1) 秒内滑向 (110)
将 [大小] 在 (1) 秒内滑向 (100) // 闪烁脉动
end
5. 自制积木(封装重复动作)
把高频动作封装成带参数积木,避免到处复制:
画电网 (起点x) (终点x):一笔画出输电主线与塔架;生成故障 (节点索引):在指定节点生成火花;修复特效:播放绿色对勾 + 分数弹出;过关庆祝:礼花 + "第 N 关完成";重置:清空变量、删除所有克隆、小车归位。
6. 广播解耦(关键思想)
整局游戏没有一处"硬连线":小车只负责前进和广播"到达节点";故障判定只监听消息;特效、计分、音效各自监听对应广播。谁触发、谁响应完全分离,这是中高阶比赛的加分写法,也方便你之后加音效、加排行榜而不动主逻辑。
下面这段 Python 用最朴素的方式还原了"沿节点巡检 + 故障判定"的核心算法,方便理解上面的积木在干什么:
python
# 电网巡检车核心逻辑(对应上方积木,纯演示)
nodes = [(120, 80), (260, 80), (400, 80), (540, 80)]
faults = {1, 3} # 第 2、4 个节点是故障点
car_x, score, power = 0, 0, 100
for i, (x, y) in enumerate(nodes):
car_x = x
if i in faults:
score += 2 # 修复故障奖励
power -= 5
print(f"节点{i} 故障已修复,+2 分")
else:
score += 1 # 正常巡检
print(f"节点{i} 巡检完成,+1 分")
if power <= 0:
print("电量耗尽,结算")
break
print("总分:", score)
四、进阶玩法
把这个基础版做扎实后,可以往这几个方向加难度,直接变成参赛级作品:
- 多车协同巡检:用两个角色 + 列表切片,把节点平分给两辆车,比谁先巡完------对应北斗杯"协同通行"的评分点。
- 随机故障 + 难度递增:每过一关,故障概率提高、电量上限降低,考验平衡设计。
- 计时挑战与本地排行榜:用列表记录历史最佳分数,配合"隐藏列表"做私人榜单。
- 广播联动音效与剧情:发现故障播警报音、修复成功播欢快音,用广播统一调度,体验更完整。
五、小结与互动
一个《电网巡检车》,把列表、循环、条件、变量、自制积木、广播六大图形化核心考点全串了起来,又贴着北斗杯"电力巡检"的真实场景,拿去备赛或直接参赛都很合适。
今日互动:你最想用 Scratch 做北斗杯里的哪个赛项?是电力巡检、无人机编程,还是北斗定位闯关?评论区聊聊,下期我可以挑一个做成完整拆解。
本文为原创图形化项目拆解,赛事信息以官方最新通知为准。觉得有用欢迎点赞收藏,关注我获取更多少儿编程图形化实战。
📚 免费少儿编程资料(夸克网盘领取)
以下资料来自夸克网盘分享,点击链接可直接保存;若需在 App 内打开,也可复制下方明文链接:
- 全国青少年信息素养大赛复赛集训题目Python&C++.docx
https://pan.quark.cn/s/93995d3cb150 - 2024信息素养-智能算法应用挑战赛-复赛初中组题目7月7日.pdf
https://pan.quark.cn/s/da97b5dbf75d - Python背记手册.pdf
https://pan.quark.cn/s/7568ae9ca92b - Python课程
https://pan.quark.cn/s/a94bf02d00c6 - 2024信息素养大赛图形化复赛集训题答案3-9
https://pan.quark.cn/s/6ccab7ec3cbc - 2025年03月份电子学会考级真题
https://pan.quark.cn/s/4403c4228912 - 2025全国青少年信息素养大赛赛项说明
https://pan.quark.cn/s/d9d0df4a9f29 - 青少儿信息素养大赛编程资料
https://pan.quark.cn/s/4ab6bd83be8a
资料持续更新,关注获取最新分享。