☰
2026温州市创意大赛:校园弹珠迷宫解析
2026/10/5 7:50:24 网站建设 项目流程

引言

图形化编程比赛最看重的,不是你会多少"高级"积木,而是能不能把一个完整的小游戏拆解成「数据 → 循环 → 条件 → 积木 → 广播」这五样东西。本期我们以温州市第十七届青少年创意大赛·创意编程竞赛(Scratch 图形化赛项)为锚点,原创一道经典又出彩的真题改编题——校园弹珠迷宫,带你把重力滚球的小游戏做扎实。

赛事背景:温州市第十七届青少年创意大赛由团市委、市教育局、市科技局、市少工委联合主办,温州市青少年活动中心承办,其中"创意编程竞赛"明确采用 Scratch2.0 / Scratch3.0,要求围绕主题现场完成互动故事、动画或小游戏。报名窗口 10 月 9 日—14 日开启,正式比赛 11 月 5 日—8 日举行,正是备赛黄金期。

一、题目与项目目标

【原创真题改编】校园弹珠迷宫

设计并制作一个"重力迷宫"小游戏:玩家通过方向键倾斜迷宫面板,让一颗弹珠从起点滚向终点。途中要避开墙体和陷阱洞,若弹珠落入洞中或卡死则本关失败,需在限定时间内到达终点才算通关。

项目目标(评分要点)

  1. 迷宫由多关卡组成,每关墙体布局不同;
  2. 弹珠受"重力 + 倾斜"影响产生加速度,运动连续自然;
  3. 撞墙能反弹、落洞判失败、到终点判过关;
  4. 界面有分数 / 关卡 / 计时,支持重开;
  5. 作品有开始与结束按钮,结构完整。

这道题几乎把图形化编程五大核心考点全部考了一遍,是现场赛里非常稳的选题。

二、核心考点(图形化编程五大能力)

考点在本题中的体现
列表用一维/二维列表存储迷宫地图(0 通路、1 墙、2 洞、3 起点、4 终点)
变量小球 x/y 坐标、vx/vy 速度、倾斜角、关卡号、状态、剩余时间
循环主循环每帧刷新小球坐标、遍历迷宫格子做碰撞检测
条件判撞墙反弹、落入洞失败、到达终点过关、超时结束
自制积木 + 广播封装"画迷宫 / 生成墙 / 生成洞 / 重置 / 过关庆祝";用广播解耦开始、失败、过关、重置

三、积木拆解与解题思路

1. 数据与状态:列表 + 变量

先建一个列表迷宫地图,把每关的格子按顺序存成一维串(例如101010...),再用「序号 ÷ 列数」算出行列坐标。这样换关卡只需换一条列表,关卡数据和维护成本极低。

关键变量:

  • 小球x小球y:弹珠在舞台上的位置;
  • vxvy:当前速度;
  • 倾斜角:方向键按下时给一个加速度方向;
  • 关卡:当前第几关;
  • 状态:0 准备 / 1 进行中 / 2 失败 / 3 过关;
  • 剩余时间:倒计时。

2. 主循环与小球物理运动

核心逻辑放在"当绿旗被点击"后的重复执行里,每帧做四步:

  1. 施加重力与倾斜加速度:vx = vx + 倾斜角加速度,vy = vy + 重力;
  2. 更新坐标:小球x = 小球x + vx,小球y = 小球y + vy;
  3. 限速与阻尼:速度过大时乘一个摩擦系数,避免弹珠乱飞;
  4. 碰撞检测:取出小球所在的格子,判断是墙、洞还是终点。

这部分是整道题的灵魂,物理感做得越自然,评委印象分越高。

3. 条件判定:撞墙、落洞、过关

用如果…那么分三类处理:

  • 撞墙:若下一步落点格子是"墙",把对应方向速度反向并乘 0.6(反弹衰减),弹珠贴墙滑动;
  • 落洞:若落点格子是"洞",广播落洞,状态置为 2,播放失败音效;
  • 到终点:若落点格子是"终点",广播过关,状态置为 3,记录用时并弹庆祝。

同时还要判断剩余时间 ≤ 0→ 广播游戏结束。

4. 自制积木与广播解耦

把重复工作封装成带参数的自制积木,代码立刻清爽:

  • 画迷宫(关卡):按列表画出墙与洞的角色排布;
  • 生成墙生成洞:用克隆体批量生成障碍;
  • 重置关卡:清空状态、复位小球、重置计时;
  • 过关庆祝:撒花 + 显示用时。

广播用来解耦各模块:开始→ 重置并切状态;落洞/过关→ 触发对应结算;重置→ 回到准备态。这样逻辑彼此独立,调试和扩展都方便。

四、运行效果与评分要点

现场演示时,建议按这个顺序走一遍,评委一眼就能看懂你的设计:

  1. 点击开始 → 迷宫生成、小球出现在起点;
  2. 按方向键倾斜面板,弹珠顺重力滚动;
  3. 撞墙自然反弹,落洞立即失败并可重开;
  4. 成功抵达终点 → 撒花 + 显示"第 N 关通关,用时 X 秒";
  5. 倒计时归零 → 提示"时间到,再试一次"。

加分细节:给弹珠加一条短拖尾(克隆体残留半透明),运动轨迹更直观;不同关卡用不同配色,视觉更丰富。

五、进阶拓展(重力迷宫算法思路 + Python 参考)

想再拔高一点,可以把"自动寻路"作为进阶展示:给定迷宫,让弹珠(或提示箭头)自动找到通往终点的最短路径。本质是一个 BFS 在网格上求最短路,下面给出核心 Python 参考:

from collections import deque def shortest_path(maze, start, end): """maze: 二维列表,0 通路 / 1 墙;返回从 start 到 end 的最短步数。""" rows, cols = len(maze), len(maze[0]) sx, sy = start dist = [[-1] * cols for _ in range(rows)] dist[sx][sy] = 0 q = deque([(sx, sy)]) for dx, dy in ((-1, 0), (1, 0), (0, -1), (0, 1)): while q: x, y = q.popleft() for dx, dy in ((-1, 0), (1, 0), (0, -1), (0, 1)): nx, ny = x + dx, y + dy if 0 <= nx < rows and 0 <= ny < cols: if maze[nx][ny] == 0 and dist[nx][ny] == -1: dist[nx][ny] = dist[x][y] + 1 q.append((nx, ny)) return dist[end[0]][end[1]] # -1 表示不可达

把这个思路搬回图形化,就是"判定可达性 + 高亮最短路线",评委看到这里基本就给高分了。

六、小结与互动

一道"校园弹珠迷宫",把列表建图、变量记状态、循环驱动物理、条件做判定、自制积木与广播解耦五样考点串成一条完整作品线。备赛温州市创意编程竞赛的同学,完全可以把这个当模板,换主题(太空迷宫、校园逃生迷宫、动物找家迷宫)就能快速出新品。

你在图形化比赛里最怕哪类题?是物理运动做不自然,还是多关卡切换总乱?留言告诉我,下期挑一个最常被问到的痛点,专门拆解给你看。

觉得有用就点个赞 + 收藏,关注我,持续更新少儿编程比赛原创真题与图形化解法。


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

以下资料来自夸克网盘分享,点击链接可直接保存;若需在 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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询