选题锚点:第七届山东省青少年创意编程与智能设计大赛(青岛市赛)------创意编程项目明确鼓励图形化创作,考察逻辑思维、算法设计与跨学科融合能力。本文原创一个「海底寻宝」图形化闯关项目,适合作为该赛项图形化组实训样例。
一、引言
图形化编程最迷人的地方,是能把"抽象的逻辑"变成"看得见、玩得起来"的小游戏。今天我们就用一个综合项目 海底寻宝大冒险 来串起列表、变量、循环、条件、自制积木和广播六大核心考点。
玩家操控一只小潜水艇,在深邃的海底游走,收集闪光的珍珠宝藏,同时躲开游动的危险鱼。限时内收集到足够多的宝藏即可过关,撞到危险鱼或被危险鱼追上则损失生命。整个项目不到 200 块积木就能跑起来,却能覆盖竞赛里最常见的图形化能力点。

二、题目与项目目标
项目目标(原创题)
设计一个「海底寻宝」闯关游戏,要求满足:
- 海底随机生成若干「珍珠宝藏」与若干「危险鱼」,二者都会持续游动;
- 玩家用方向键控制潜水艇上下左右移动;
- 碰到珍珠则得分 +1 并播放收集特效,珍珠消失后在别处重新生成;
- 碰到危险鱼则生命 −1,危险鱼短暂消失后重新出现;
- 限时 60 秒,时间内收集到目标数量(如 10 颗)即过关;生命归零或时间耗尽则游戏结束;
- 关卡可递增:每过一关,危险鱼变多、游速变快。
考察意图:在限定时间内,把"随机生成---碰撞检测---状态管理---关卡推进"四件事用图形化积木组织清楚,正是创意编程赛项看重的工程化思维。
三、核心考点
| 考点 | 在本题中的落点 |
|---|---|
| 列表 | 存每关的「目标数」「危险鱼数量」「已收集数」等关卡配置;也可存宝藏坐标序列 |
| 变量 | 分数、生命、关卡、剩余时间、潜水艇坐标、危险鱼速度 |
| 循环 | 主循环驱动游戏进行;危险鱼/宝藏的"来回游动"用重复执行 + 碰边反弹 |
| 条件 | 判断是否碰到宝藏、是否碰到危险鱼、是否达标过关、是否归零结束 |
| 自制积木 | 把"画海底背景""生成一颗宝藏""生成一条危险鱼""过关庆祝""重置关卡"封装成带/不带参数的积木 |
| 广播 | 用消息解耦:开始游戏 / 生成宝藏 / 收集成功 / 受到伤害 / 过关 / 游戏结束 / 重置 |
四、解法与积木拆解
1. 数据建模:列表 + 变量
新建一个列表 关卡配置,里面按顺序放三关的参数,例如:
关卡配置 = [10, 3, 5, 15, 5, 7, 20, 7, 9]
└目标┘ └鱼数┘ └速度┘ (每 3 项为一关)
再用变量记住当前状态:
分数、生命、关卡、剩余时间(均初始化)潜水艇X、潜水艇Y(记录玩家位置,方便危险鱼"追"过来)
2. 角色与克隆体
- 潜水艇(玩家):用「当按下 → 方向键」积木改变坐标,并夹在舞台边界内(用「如果 碰到边缘 就反弹」或显式条件限制)。
- 珍珠(宝藏):用「克隆自己」生成多份;每个克隆体私有变量记住自己的坐标,重复执行"左右/上下小幅游动"。
- 危险鱼 :同样用克隆体;它的移动多一条规则------朝
潜水艇X/潜水艇Y缓慢靠近,制造"追击感"。
小技巧:克隆体的"私有变量"是图形化里最容易忽略但最关键的点。给每个克隆体单独建一个"本克隆速度"变量,勾选"仅适用于当前角色",这样每条鱼速度都不同。
3. 主循环与移动
舞台或潜水艇用「重复执行」做主循环:
重复执行:
如果 <按键 左键 按下> 那么 将 x 坐标 增加 -6
如果 <按键 右键 按下> 那么 将 x 坐标 增加 6
如果 <按键 上键 按下> 那么 将 y 坐标 增加 6
如果 <按键 下键 按下> 那么 将 y 坐标 增加 -6
将 潜水艇X 设为 x坐标;将 潜水艇Y 设为 y坐标
如果 <碰到边缘> 那么 反弹
危险鱼的"追击"逻辑用条件 + 变量实现:
重复执行:
如果 <潜水艇X > x坐标> 那么 将 x 坐标 增加 速度
如果 <潜水艇X < x坐标> 那么 将 x 坐标 增加 -速度
如果 <潜水艇Y > y坐标> 那么 将 y 坐标 增加 速度
如果 <潜水艇Y < y坐标> 那么 将 y 坐标 增加 -速度
4. 条件判断:收集 / 受伤 / 过关 / 结束
珍珠克隆体里写:
重复执行:
如果 <碰到 潜水艇?> 那么:
广播 收集成功
删除此克隆体
危险鱼克隆体里写:
重复执行:
如果 <碰到 潜水艇?> 那么:
广播 受到伤害
隐藏;等待 1 秒;显示(短暂无敌后重新出现)
舞台主逻辑用条件串起胜负:
重复执行:
如果 <分数 >= 目标数> 那么 广播 过关
如果 <生命 <= 0> 那么 广播 游戏结束
如果 <剩余时间 <= 0> 那么 广播 游戏结束
5. 自制积木封装
把重复出现的流程收成自制积木,代码立刻清爽:
画海底背景:画渐变海水 + 海草 + 气泡;生成一颗宝藏:在随机安全坐标克隆珍珠;生成一条危险鱼:按当前关卡速度克隆鱼;过关庆祝:放烟花特效 + 显示"第 N 关达成";重置关卡:把分数/生命/时间归位,读下一关配置。
带参数的积木更香:把
生成一条危险鱼(速度)设成带参数,三关直接传不同速度,不用复制三份。
6. 广播解耦
用广播代替"在一个角色里写所有逻辑",职责清楚、好调试:
开始游戏→ 重置 + 生成首关宝藏与鱼;收集成功→ 分数 +1,若达标触发过关;受到伤害→ 生命 −1,若归零触发游戏结束;过关→ 关卡 +1,调用重置关卡与生成一条危险鱼;游戏结束→ 停止全部脚本,显示结算。

五、运行效果
跑起来后你会看到:
- 潜水艇随方向键顺滑游动,有边界限制不会游出屏幕;
- 珍珠随机闪现、被吃后立刻在别处重生,分数实时跳动;
- 危险鱼由慢到快逼近,被撞一下生命 −1 并闪红;
- 集满目标数弹出"过关",下一关鱼更多更快;
- 时间条走完或生命归零,停在结算页显示本局得分与到达关卡。
整体手感流畅,逻辑闭环完整,是非常适合拿来参赛或演示的图形化作品。
六、进阶挑战
想再拔高一点,可以加这些:
- 多结局:按到达关卡给"青铜/白银/黄金"评价,用列表存评级阈值;
- 道具系统:偶尔生成"加速""护盾""加时"三种特殊泡泡,碰到触发不同效果;
- 排行榜:用列表记录最近 5 次最高分,游戏结束展示;
- 逻辑迁移到代码:下面这段 Python 伪代码就是"危险鱼追击"的核心,和上面积木一一对应,方便你理解图形化与文本代码的映射:
python
# 危险鱼朝潜水艇靠近(与上面"重复执行"积木等价)
def update_fish(fish_x, fish_y, sub_x, sub_y, speed):
if sub_x > fish_x:
fish_x += speed
if sub_x < fish_x:
fish_x -= speed
if sub_y > fish_y:
fish_y += speed
if sub_y < fish_y:
fish_y -= speed
return fish_x, fish_y
七、小结与互动
「海底寻宝大冒险」用一个项目把 列表(关卡配置)、变量(分数/生命/时间)、循环(主循环与游动)、条件(碰撞与胜负)、自制积木(封装复用)、广播(模块解耦) 全部串了一遍,是图形化创意编程赛项的绝佳练手题。
你最想先实现哪个进阶功能?是道具系统还是多结局排行榜?欢迎在评论区聊聊你的做法,也可以晒出你改出来的关卡参数,我们下篇接着拆新的图形化真题。
📚 免费少儿编程资料(夸克网盘领取)
以下资料来自夸克网盘分享,点击链接可直接保存;若需在 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
资料持续更新,关注获取最新分享。