蓝桥杯青少组省考(11/9报名截止·11/22开考)+电子学会图形化考级+信息素养大赛:校园极速跑酷闯关解析

一、备考引言:三大赛事图形化考点高度重合

备考季正酣------蓝桥杯青少组省考(STEMA) 11 月场报名 11 月 9 日 16:00 截止 、11 月 22 日开考 (Scratch 组 10:00--11:30,90 分钟上机),准考证 11 月 18 日 14:00 起下载、成绩 12 月 4 日公布;中国电子学会 12 月图形化考级 报名到 12 月 2 日 16:00 才关门,全国测试 12 月 10 日、统考 12 月 13 日(一级 14:00--15:00、二/三/四级 8:30--10:00);全国青少年信息素养大赛 2026---2027 赛季 也进入报名与初赛规划窗口,复赛 2027 年 5--7 月、总决赛 7--8 月,5 大主题赛项均覆盖图形化。

这三大标志性赛事的图形化(Scratch)考点高度重合:变量、列表、循环、条件、自制积木、广播 六件套几乎每场都要考。今天用一个原创项目「校园极速跑酷闯关」,把这六件套一次性串起来,一篇顶三篇备考。

今天距蓝桥杯 11 月省考报名截止只剩 4 天,想冲省考/国考、同时备考电子学会图形化考级与信息素养大赛的同学,这篇可以直接当练手题。


二、题目与项目目标

背景设定(原创,不照搬真实赛题):操场赛道上,小猫角色自动向前奔跑,前方不断出现障碍物------低栏、高栏、掠过的飞鸟。玩家按空格键(或点击舞台)让角色起跳躲避;每安全越过一个障碍得 1 分,撞到障碍损失 1 条命,三条命耗尽游戏结束;速度随分数递增,挑战极限距离。

项目目标(也是这类题的采分点) :

  1. 玩法完整:奔跑、起跳、躲避、计分、扣命、结束、重开,一个不少;

  2. 交互流畅:跳跃响应及时,落地后才能再次起跳,杜绝"空中乱跳";

  3. 结构清晰:变量命名规范,功能用自制积木封装,流程用广播解耦;

  4. 可扩展:速度、障碍密度、障碍种类参数化,便于继续加玩法。


三、核心考点(六件套全包)

考点 在本项目中的体现
变量 score 分数、speed 速度、lives 生命、state 游戏状态(0 等待/1 进行/2 结束)、jumping 是否在跳、jump_v 跳跃速度、ground_y 地面高度、best 最高分、spawn_gap 障碍间隔帧数
列表 obstacles 记录在场障碍的"位置下标 + 类型"(也可完全交给克隆体私有变量,文末对比两种方案)
循环 跑者主循环"重复执行"逐帧推进(重力→移动→碰撞);障碍克隆体循环左移并越界删除
条件 是否跳跃中、是否落地、是否撞障碍、障碍是否越过跑者、生命是否耗尽、速度是否达标加速
自制积木 生成障碍、跳跃、碰撞检测、绘制场景、重置一局 封装复用,主脚本只做调度
广播 按钮只发 开始游戏,跑者监听后初始化;得分、撞击、游戏结束、重置 解耦逻辑与表现

四、解法拆解(分步上手)

4.1 用"状态机"管住流程

新建变量 state,取值 0(等待)/ 1(进行)/ 2(结束)。绿旗点击后 state=0,按钮只广播 开始游戏;跑者收到广播后把所有变量归零、state=1。任何"误点按钮"只要 state≠0 就忽略------这能挡掉 80% 的现场翻车。

4.2 重力与跳跃(最容易写错的一段物理)

核心思路:每帧先改速度,再改坐标,顺序不可反(和"飞鸟穿越"同源)。

  • 变量 jump_v(跳跃速度,向上为负)、gravity(重力加速度,如 0.6);
  • 主循环里:jump_v = jump_v + gravity;y = y + jump_v;
  • 若 y <= ground_y:y = ground_y、jump_v = 0、jumping = false(落地);
  • 空格按下 且 jumping = false 时:jump_v = -12、jumping = true(起跳)。

很多同学把"改速度"和"改坐标"顺序写反,导致落地后还会继续下沉一格,跳跃手感发飘。

4.3 障碍用克隆体 + 私有变量

  • 生成障碍 自制积木:每隔 spawn_gap 帧建一个克隆体,给它私有变量 my_type(0 低栏/1 高栏/2 飞鸟),决定高度与碰撞框;同时 scored = false(防止重复计分)。
  • 障碍克隆体脚本:重复执行:x = x - speed;若 x < -260 则 删除此克隆体。

4.4 碰撞检测与计分(关键在"谁去加分")

  • 撞到 :跑者在主循环里 如果 碰到 [障碍] 且 无敌计时=0 → lives = lives - 1、广播 撞击、给 30 帧无敌闪烁,若 lives <= 0 则 state=2、广播 游戏结束。
  • 计分 :把"加分"放在障碍克隆体 脚本里------当 x < 跑者x 且 scored = false 时,广播 得分、score = score + 1、scored = true。这样"安全越过"才加分,且每个障碍只计一次,不会重复刷分。

4.5 速度与难度曲线

speed 初始 4,每得 5 分 speed = speed + 0.3(上限 12);spawn_gap 随 speed 缩小,障碍越来越密------典型的"分数越高越刺激"。

4.6 广播彻底解耦

按钮只负责广播,跑者负责算逻辑,播报员(另一角色)只"听广播说话"。三者互不耦合,调试时改表现不影响逻辑,是蓝桥杯与信息素养上机题的高分写法。


五、进阶玩法与探究

  1. 障碍种类升级 :低栏(跳一次)、高栏(需更大起跳初速或二段跳)、飞鸟(需二段跳或下滑铲)。my_type 决定碰撞框高度,逻辑零改动即可加新障碍。
  2. 二段跳 / 滑铲下蹲 :加变量 jump_count,空中可再跳一次;按下键 y 压扁实现滑铲躲飞鸟。
  3. 金币收集系统 :用 coins 列表记录金币坐标,吃到 +2 分,丰富计分维度。
  4. 难度曲线探究 :画出 speed 与 spawn_gap 的函数关系,找"可玩---变态"的临界点,这正是信息素养大赛算法应用主题赛爱考的"参数调优"思想。
  5. 考级提分点 :为什么用"碰到角色"而非"颜色碰撞"(颜色侦测在大画面里容易误判);克隆体私有变量如何让几十个障碍互不干扰;state 状态机如何挡掉误触。

Python 同构对照(核心物理与计分)

下面用纯逻辑还原上面的物理与计分,不依赖图形库也能跑,帮助理解"先改速度再改坐标"和"谁去加分":

python 复制代码
GRAVITY = 0.6
JUMP_V = -12
GROUND_Y = -120

class Runner:
    def __init__(self):
        self.x = -160
        self.y = GROUND_Y
        self.jump_v = 0
        self.jumping = False
        self.lives = 3
        self.score = 0
        self.invuln = 0      # 受击后无敌帧

    def step(self, jump_pressed):
        # 先改速度,再改坐标(顺序不可反)
        if jump_pressed and not self.jumping:
            self.jump_v = JUMP_V
            self.jumping = True
        self.jump_v += GRAVITY
        self.y += self.jump_v
        if self.y <= GROUND_Y:
            self.y = GROUND_Y
            self.jump_v = 0
            self.jumping = False
        if self.invuln > 0:
            self.invuln -= 1

class Obstacle:
    def __init__(self, x, otype):
        self.x = x
        self.otype = otype     # 0 低栏 1 高栏 2 飞鸟
        self.scored = False
        self.alive = True

    def step(self, speed):
        self.x -= speed
        if self.x < -260:
            self.alive = False

def hit(runner, obs):
    # 半宽半高矩形近似,不用颜色侦测
    half_w, half_h = 18, 26
    if abs(runner.x - obs.x) < half_w and runner.y < (GROUND_Y + 60):
        return True
    return False

# 计分放在障碍侧:安全越过才 +1,且只计一次
def try_score(runner, obs):
    if obs.x < runner.x and not obs.scored:
        runner.score += 1
        obs.scored = True

六、小结与互动

「校园极速跑酷闯关」把图形化六件套落到了实处:变量/列表 管状态与障碍、循环 驱动逐帧物理、条件 判跳跃/碰撞/加速、自制积木 封装生成与跳跃、广播解耦逻辑与表现。练熟这一题,蓝桥杯青少组省考、电子学会图形化考级、信息素养大赛的图形化操作题基本都能套同一条骨架。

你最想给跑酷加哪种障碍或机制?是二段跳、金币、还是 Boss 关?欢迎在评论区留言,下一篇我们挑一个做深度拆解。也欢迎关注,三大赛事备考干货持续更新。


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

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

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

相关推荐
青少儿编程课堂5 天前
2026蓝桥杯·全国青少年信息素养大赛·电子学会图形化考级:校园井字棋人机对战解析
scratch·少儿编程·图形化编程·创意编程·信息科技
UIU1146 天前
P16237 [蓝桥杯 2026 省 B] 应急布线
数据结构·c++·算法·蓝桥杯
爱聊灵光的维C7 天前
C语言初阶:关于函数设计的详细讲解和注意事项
c语言·开发语言·青少年编程·蓝桥杯·学习方法
GG.WinGel10 天前
三元组中心问题
java·数据结构·算法·青少年编程·蓝桥杯
GG.WinGel11 天前
质数数目(蓝桥杯练习题)
java·数据结构·算法·青少年编程·蓝桥杯
Tsuki_tl12 天前
【优选算法 — 双指针】经典例题题解+算法总结
算法·蓝桥杯·力扣·刷题·双指针·1024程序员节·优选算法
十二14 天前
【洛谷题解】P1115 最大子段和(前缀和 + 维护最小前缀)
数据结构·c++·算法·蓝桥杯
青少儿编程课堂16 天前
2026蓝桥杯青少组:校园飞鸟穿越赛解析
蓝桥杯·scratch·少儿编程·图形化编程·蓝桥杯青少组
青少儿编程课堂17 天前
2026信息素养大赛:校园智能图书管理员解析
scratch·少儿编程·图形化编程·信息素养大赛·创意编程