配套赛事:汉中市第八届青少年机器人竞赛 · Scratch/Python 编程挑战赛(图形化赛项)
适合学段:小学组 / 初中组(图形化编程)
关键词:列表、循环、条件、变量、自制积木、广播
一、引言
祖玛(Zuma)是一款经典又烧脑的消除类游戏:一串彩色珠子沿着轨道缓缓推进,玩家转动炮台发射同色珠子,当三个及以上同色珠子连成一段时就会被消除,直到整条珠链清空或到达终点。它把「队列、颜色匹配、连锁消除」浓缩在一个小项目里,特别适合作为图形化编程的原创练习题。
本文给出一个可直接在图形化平台复刻的校园祖玛消消乐项目方案,从题目目标、核心考点、积木拆解到进阶玩法一步步讲清楚,帮助你在汉中市青少年机器人竞赛的图形化赛项中快速上手。
二、题目 / 项目目标
项目名:校园祖玛消消乐
背景设定:校园科技节上,一条由彩色珠子组成的"知识珠链"正沿着螺旋轨道向终点滚动。你操控中央的"智慧炮台",发射珠子去消除同色段,阻止珠链抵达终点,并在规定时间内清空珠链拿高分。
实现目标:
- 珠链由若干彩色珠子组成,沿固定轨道从起点向终点匀速推进;
- 中央炮台可左右旋转,空格键发射当前珠子;
- 发射的珠子插入珠链后,若形成 ≥3 个同色连续段,则整段消除并加分;
- 珠链全部清空 → 过关;珠链抵达终点 → 游戏结束;
- 多关卡递进,关卡越高珠链越长、推进越快。
三、核心考点
| 考点 | 在本项目中的体现 |
|---|---|
| 列表 | 珠链颜色列表按顺序排列每个珠子的颜色编号;关卡配置列表存每关珠链长度与速度 |
| 变量 | 分数、连击、关卡、当前发射色、炮台角度、珠链头位置、剩余时间 |
| 循环 | 主循环不断驱动珠链前进、发射珠飞行、检测消除;重复执行刷每帧状态 |
| 条件 | 判三连同色、判珠链到终点、判过关、判超时、判发射珠落入位置 |
| 自制积木 | 生成珠链、发射珠子、消除特效、过关庆祝、重置一局(带参数封装) |
| 广播 | 开始、发射、三连消除、珠链到终点、过关、重置解耦各模块 |
四、解法 / 积木拆解
4.1 数据结构:用列表当"珠链"
把整条珠链抽象成一个一维列表珠链颜色,下标 0 是链头(最靠近终点),末尾是链尾(刚生成处)。每次消除就是"删掉列表里连续同色的那一段",珠链整体前移时只需把链头下标对应的珠子坐标往终点推。
珠链颜色 = [红, 蓝, 蓝, 红, 绿, 绿, 绿, 红, ...] ← 下标0在终点侧4.2 主循环与珠链推进
- 用一个
珠链头位置变量记录链头已推进的距离; 重复执行:每帧珠链头位置增加当前速度,并把每个珠子的屏幕坐标按轨道样条刷新;如果 珠链头位置 ≥ 终点阈值→广播 珠链到终点。
4.3 炮台发射与插入
- 方向键(或鼠标)改变
炮台角度;空格 →广播 发射; - 发射珠以
炮台角度为方向飞出(用x 坐标 / y 坐标+ 速度向量更新); - 飞行珠碰到珠链时,根据落点插入
珠链颜色列表对应位置(在链尾追加或在中间插入,视碰撞点最近的珠子而定)。
4.4 三连消除(最关键的一步)
插入后,从落点向左右扩展,统计与发射珠同色的连续段长度:
如果 同色连续长度 ≥ 3→ 删除这段列表元素,分数增加(连击越高分越多),广播 三连消除播放特效;- 消除后珠链可能出现"断开",可让左右两段重新接续(进阶可加"引力吸附"动画)。
伪代码(消除判定): left = 落点 while left-1 ≥ 0 且 珠链颜色[left-1] == 发射色: left -= 1 right = 落点 while right+1 < 长度 且 珠链颜色[right+1] == 发射色: right += 1 if right - left + 1 ≥ 3: 删除 珠链颜色[left .. right] 分数 += (段长) * 10 * 连击 连击 += 1 广播 三连消除 else: 连击 = 1 # 没消成就断连击4.5 自制积木封装
| 自制积木 | 作用 |
|---|---|
生成珠链(关数) | 按关卡配置随机生成一条珠链,保证开局不直接有三连 |
发射珠子 | 克隆一颗飞行珠并按炮台角度赋初速度 |
消除特效(位置) | 在消除处播放闪光/粒子,提升手感 |
过关庆祝 | 显示"过关"并进入下一关 |
重置一局 | 清零变量、重建珠链、复位炮台 |
4.6 广播解耦
当 接收到 [开始] → 重置一局、生成珠链、启动主循环 当 接收到 [发射] → 调用 发射珠子 当 接收到 [三连消除] → 播放消除特效、刷新分数 当 接收到 [珠链到终点] → 停止主循环、广播 游戏结束 当 接收到 [过关] → 关卡+1、加快速度、生成新珠链 当 接收到 [重置] → 回到初始状态五、运行效果
- 开局:螺旋轨道上排列着五彩珠链,中央炮台待命;
- 发射同色珠插入后,三连及以上整段"啪"地消除,分数跳动、连击叠加;
- 连续消除触发连锁时,珠链明显变短,紧张感拉满;
- 清空全部珠子 → 弹出"过关",进入更长更快的下一关;
- 珠链触及终点 → 弹出"游戏结束",可一键重开。
六、进阶玩法
- 反向插入(进阶消除):消除中断开的两段若颜色相同,应自动"吸附合并"并二次判定,可形成连锁 Combo;
- 特殊珠:加入"炸弹珠"(消周围一片)、"彩虹珠"(任意色通用),用额外变量标记珠类型;
- 算法对照(Python):用列表模拟整条珠链的插入与消除,验证你的图形化逻辑是否正确:
def shoot(chain, pos, color): chain.insert(pos, color) left = pos while left - 1 >= 0 and chain[left - 1] == color: left -= 1 right = pos while right + 1 < len(chain) and chain[right + 1] == color: right += 1 if right - left + 1 >= 3: del chain[left:right + 1] return True # 发生消除 return False # 示例:在索引3插入红色 chain = ["红","蓝","蓝","红","绿","绿","红"] print(shoot(chain, 3, "红")) # True,红红红被消除 print(chain)- 关卡编辑器:把
关卡配置列表开放给学生自定义珠链长度与速度,做成一个"出题小工具",直接对应竞赛里"自主设计作品"的评分点。
七、小结与互动
校园祖玛消消乐把列表(珠链)+ 循环(推进/飞行)+ 条件(三连判定)+ 变量(分数/连击)+ 自制积木 + 广播六大图形化考点串成一条完整项目线,既有可玩性又能体现编程思维,非常适合作为汉中市青少年机器人竞赛图形化赛项的原创练习题。
互动时间:你打算给珠链加哪种"特殊珠"?是炸弹珠还是彩虹珠?或者你更想挑战"连锁吸附 Combo"?欢迎在评论区聊聊你的设计,也可以把做好的作品链接发出来一起交流~
📚 免费少儿编程资料(夸克网盘领取)
以下资料来自夸克网盘分享,点击链接可直接保存;若需在 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
资料持续更新,关注获取最新分享。