引言
最近不少家长在问:孩子学了一段图形化编程,怎么检验"计算思维"到底掌握得扎不扎实?其实答案就藏在教育部白名单赛事的计算思维类·创意编程赛项里。
今年江苏省的"领航杯"中小学生人工智能素养大赛正在各地开展选拔,其中计算思维类明确包含"创意编程"小项------它不看你背了多少指令,而看你能不能把一个真实问题(比如一次投篮)拆成"数据、循环、条件、自制积木"的组合。
下面我用一道原创图形化项目题 校园投篮挑战赛 带你拆透它的考点,孩子照着搭,既能练手又能直接当参赛作品雏形。

一、题目与项目目标
【原创项目题】校园投篮挑战赛
操场上立着一个会左右移动的篮筐。玩家通过"蓄力条"决定投篮力度、通过"方向键"微调角度,把篮球投进筐里。每进一球得 2 分,连续命中触发连击额外加分;投满 10 次后,命中率达到 60% 即过关,进入更远的下一关。筐越远、移动越快,挑战升级。
项目目标(对应赛事评分维度):
-
算法与逻辑 :用变量记录分数、命中、连击,用循环驱动篮球飞行,用条件判定命中与过关;
-
程序结构 :把"画球场、生成篮筐、投篮、命中特效、重置关卡"封成自制积木,结构清晰;
-
交互体验 :键盘控制 + 实时反馈,可玩性强;
-
原创主题:贴近校园生活,积极健康。
二、核心考点速览
| 考点 | 在本项目中的用法 |
|---|---|
| 变量 | 分数、已投次数、命中数、连击、关卡、篮球x/y、速度vx/vy、重力g |
| 列表 | 关卡配置(每关筐距、移动速度)、命中记录(历史命中率) |
| 循环 | 主循环每帧刷新篮球坐标、刷新篮筐移动;关卡循环逐关推进 |
| 条件 | 判定"篮球进入筐口且向下运动=命中"、"次数满且命中率达标=过关"、"越界/落地=投失" |
| 自制积木 | 画球场、生成篮筐、投篮动画、命中特效、重置关卡(带参数更灵活) |
| 广播 | 开始、投中、投失、过关、重置 解耦各模块,避免互相耦合 |
这六个考点几乎覆盖了创意编程赛项小学到初中组的全部评分点,是一道"练一遍顶好几道"的综合题。
三、解法与积木拆解
1. 数据与初始化(变量 + 列表)
开局用自制积木 重置关卡 把变量归零:
-
分数=0、已投次数=0、命中数=0、连击=0、关卡=1; -
从列表
关卡配置里读出第 1 关的"筐距"和"筐移动速度",决定难度; -
篮球x/y设为起点(罚球线),vx/vy由蓄力与角度算出,重力g设为固定值(如 0.4)。
小提示:把"筐距、筐速"放进列表 而不是写死,过关时只要
关卡+1再读下一行配置,关卡就能无限扩展------这正是赛事看重的"程序结构划分合理"。
2. 投篮与飞行(循环 + 条件 + 变量)
投篮瞬间广播 投中 之外的 开始飞行,主循环每一帧执行:
重复执行:
将 篮球x 增加 vx
将 篮球y 增加 vy
将 vy 增加 (0 - 重力g) // 重力让球往下掉,形成抛物线
如果 篮球碰到篮筐口 且 vy < 0: // 从上方进入且正在下落
广播 投中
否则如果 篮球y > 地面 或 篮球x > 边界:
广播 投失
这一段是项目的"灵魂":抛物线靠 vx 匀速、vy 受重力递减实现,孩子能直观看到"角度越平飞得越远、力度越大飞得越高",把物理和编程连起来了。
3. 命中与计分的判定(条件 + 变量)
收到 投中 广播时:
-
命中数 +1,已投次数 +1; -
若上一次也是命中,
连击 +1,每多 1 连击额外 +1 分; -
触发自制积木
命中特效(篮筐闪动 + 分数弹出)。
收到 投失 广播时:
-
已投次数 +1,连击 归零(断连击); -
若
已投次数 ≥ 10: -
计算
命中率 = 命中数 / 已投次数; -
如果 命中率 ≥ 0.6:广播过关,关卡 +1,调用重置关卡进入下一关; -
否则:广播
重置,分数清零重新挑战本关。
4. 篮筐移动与难度(循环 + 自制积木)
篮筐角色用独立循环左右移动:
重复执行:
将 筐x 增加 筐移动速度
如果 筐x > 右界:将 筐移动速度 设为 (0 - 速度)
如果 筐x < 左界:将 筐移动速度 设为 速度
生成篮筐 自制积木按当前关卡参数摆好位置,过关后只需改参数即可换难度,无需重画。
四、进阶:把投篮写成"真代码"对照
想让孩子理解图形化和代码的对应关系,可以用一段 Python 小脚本模拟同一套抛物线逻辑(仅作思路对照,不进图形化作品):
python
# 校园投篮挑战赛 ------ 抛物线命中判定(思路对照版)
def shoot(x, y, vx, vy, g=0.4, basket_x=300, basket_y=120):
while True:
x += vx
y += vy
vy -= g # 重力让竖直速度递减
# 从上方进入筐口且正在下落 → 命中
if abs(x - basket_x) < 18 and abs(y - basket_y) < 12 and vy < 0:
return "命中"
if y > 360 or x > 480: # 落地或出界 → 投失
return "投失"
# 试投:初速度 (6, 9)、起点 (40, 320)
print(shoot(40, 320, 6, 9)) # 调整 vx/vy 直到命中,就是"调参"过程
进阶方向(赛项加分项):
-
加入风力变量 :每关随机给一个
风值,投篮时vx每帧叠加风力,更贴近真实; -
计时挑战 :限制每关 30 秒,超时即失败,逼孩子优化操作;
-
多球连发 :一次投 3 个球,统计总命中率,数据用列表批量处理;
-
AI 对手:用"电脑投篮命中率"做难度曲线,逐渐逼近玩家的水平。

五、小结与互动
一道"校园投篮挑战赛"把 列表(关卡配置)、循环(飞行与移动)、条件(命中/投失/过关)、变量(分数/连击)、自制积木(封装动作)、广播(模块解耦) 全部串了起来。它不需要多炫的画面,胜在"逻辑完整、结构清晰、贴近生活"------而这恰恰是领航杯这类创意编程赛项最看重的。
建议孩子先照着搭出基础版(单关、固定筐),再按进阶一节逐步加"风力、计时、多球",每加一个功能就相当于完成一次小型作品迭代。
互动时间:你希望下一篇拆解哪类图形化项目?是"物理抛物线"系列,还是"棋牌/消除"类算法游戏?欢迎在评论区留言,点赞最高的方向我们下期安排。也欢迎把本文的做法分享给正在备赛的孩子~
📚 免费少儿编程资料(夸克网盘领取)
以下资料来自夸克网盘分享,点击链接可直接保存;若需在 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
资料持续更新,关注获取最新分享。