配套赛事:汉中市第八届青少年机器人竞赛 · Scratch/Python 编程挑战赛(图形化赛项)
适合学段:小学组 / 初中组(图形化编程)
关键词:列表、循环、条件、变量、自制积木、广播

一、引言

祖玛(Zuma)是一款经典又烧脑的消除类游戏:一串彩色珠子沿着轨道缓缓推进,玩家转动炮台发射同色珠子,当三个及以上同色珠子连成一段时就会被消除,直到整条珠链清空或到达终点。它把「队列、颜色匹配、连锁消除」浓缩在一个小项目里,特别适合作为图形化编程的原创练习题。

本文给出一个可直接在图形化平台复刻的校园祖玛消消乐项目方案,从题目目标、核心考点、积木拆解到进阶玩法一步步讲清楚,帮助你在汉中市青少年机器人竞赛的图形化赛项中快速上手。

二、题目 / 项目目标

项目名:校园祖玛消消乐

背景设定:校园科技节上,一条由彩色珠子组成的"知识珠链"正沿着螺旋轨道向终点滚动。你操控中央的"智慧炮台",发射珠子去消除同色段,阻止珠链抵达终点,并在规定时间内清空珠链拿高分。

实现目标:

  1. 珠链由若干彩色珠子组成,沿固定轨道从起点向终点匀速推进;
  2. 中央炮台可左右旋转,空格键发射当前珠子;
  3. 发射的珠子插入珠链后,若形成 ≥3 个同色连续段,则整段消除并加分;
  4. 珠链全部清空 → 过关;珠链抵达终点 → 游戏结束;
  5. 多关卡递进,关卡越高珠链越长、推进越快。

三、核心考点

考点在本项目中的体现
列表珠链颜色 列表按顺序排列每个珠子的颜色编号;关卡配置 列表存每关珠链长度与速度
变量分数、连击、关卡、当前发射色、炮台角度、珠链头位置、剩余时间
循环主循环不断驱动珠链前进、发射珠飞行、检测消除;重复执行 刷每帧状态
条件判三连同色、判珠链到终点、判过关、判超时、判发射珠落入位置
自制积木生成珠链、发射珠子、消除特效、过关庆祝、重置一局(带参数封装)
广播开始、发射、三连消除、珠链到终点、过关、重置 解耦各模块

四、解法 / 积木拆解

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、加快速度、生成新珠链
当 接收到 [重置]        → 回到初始状态

五、运行效果

  • 开局:螺旋轨道上排列着五彩珠链,中央炮台待命;
  • 发射同色珠插入后,三连及以上整段"啪"地消除,分数跳动、连击叠加;
  • 连续消除触发连锁时,珠链明显变短,紧张感拉满;
  • 清空全部珠子 → 弹出"过关",进入更长更快的下一关;
  • 珠链触及终点 → 弹出"游戏结束",可一键重开。

六、进阶玩法

  1. 反向插入(进阶消除):消除中断开的两段若颜色相同,应自动"吸附合并"并二次判定,可形成连锁 Combo;
  2. 特殊珠:加入"炸弹珠"(消周围一片)、"彩虹珠"(任意色通用),用额外变量标记珠类型;
  3. 算法对照(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)
  1. 关卡编辑器:把 关卡配置 列表开放给学生自定义珠链长度与速度,做成一个"出题小工具",直接对应竞赛里"自主设计作品"的评分点。

七、小结与互动

校园祖玛消消乐把列表(珠链)+ 循环(推进/飞行)+ 条件(三连判定)+ 变量(分数/连击)+ 自制积木 + 广播六大图形化考点串成一条完整项目线,既有可玩性又能体现编程思维,非常适合作为汉中市青少年机器人竞赛图形化赛项的原创练习题。

互动时间: 你打算给珠链加哪种"特殊珠"?是炸弹珠还是彩虹珠?或者你更想挑战"连锁吸附 Combo"?欢迎在评论区聊聊你的设计,也可以把做好的作品链接发出来一起交流~


📚 免费少儿编程资料(夸克网盘领取)

以下资料来自夸克网盘分享,点击链接可直接保存;若需在 App 内打开,也可复制下方明文链接:

  1. 全国青少年信息素养大赛复赛集训题目Python&C++.docx
    https://pan.quark.cn/s/93995d3cb150
  2. 2024信息素养-智能算法应用挑战赛-复赛初中组题目7月7日.pdf
    https://pan.quark.cn/s/da97b5dbf75d
  3. Python背记手册.pdf
    https://pan.quark.cn/s/7568ae9ca92b
  4. Python课程
    https://pan.quark.cn/s/a94bf02d00c6
  5. 2024信息素养大赛图形化复赛集训题答案3-9
    https://pan.quark.cn/s/6ccab7ec3cbc
  6. 2025年03月份电子学会考级真题
    https://pan.quark.cn/s/4403c4228912
  7. 2025全国青少年信息素养大赛赛项说明
    https://pan.quark.cn/s/d9d0df4a9f29
  8. 青少儿信息素养大赛编程资料
    https://pan.quark.cn/s/4ab6bd83be8a

资料持续更新,关注获取最新分享。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐