什么是扣哒世界的竞技场
先理解竞技场的定位与特点,才能想清楚这节课要带学生达成什么目标。
竞技场的核心定位
在扣哒世界里,普通关卡与竞技场有着本质的区别:
- 系统给你一个固定任务
- 写出一套能过关的代码就算完成
- 核心:练基本功
- 不仅要会写代码,还要会设计策略
- 对手不再是固定电脑,而是"活的策略"
- 是"学 — 练 — 赛 — 评"的封闭循环
- 核心:练实战能力 + 策略思维
本质差别:学生用 Python 或 C++ 写程序控制英雄,决定怎么移动、什么时候攻击、招募什么单位、建什么塔。在有限金币、时间、地形限制下自己设计作战方案,代码要能打赢各种不同写法的同学。
竞技场的核心特点
(1)双语言支持:Python 与 C++
Python语法简洁,适合入门、兴趣班、普及班。
C++贴近信奥 / CSP-J / USACO 的主流竞赛语言,适合进阶班和竞赛班。
通常建议:零基础 / 初学先统一用 Python;有明确信奥 / CSP 目标后,后期再转 C++ 竞技场。
(2)多种对战模式
- 人机练习模式:对战预设电脑 AI(简单 / 中等 / 困难),适合作为入门和策略试验场。
- 班级对战模式:同班学生用各自代码互相对战,可用于课堂小比赛、班级联赛等。
- 全球玩家对战模式:参加 AI 世青赛或 Code Quest 等比赛,和全世界玩家、其他学校学生的代码对决,学生能看到自己在更大范围内的水平。
建议教学顺序:先人机、再班级、再全球——学生心理压力小、体验感更好。
人机练习
对战电脑 AI,先建立信心,把语法和基础策略跑通。
班级对战
和同学代码互搏,理解"对手是活的",开始迭代策略。
全球对战
参加赛事,与全球选手同台,找到差距与提升方向。
(3)完整训练闭环
竞技场提供了一个完整闭环,特别适合作为阶段性总结课、单元项目课、竞赛集训课的核心内容:
如何使用竞技场:老师与学生双视角流程
一套可直接照着走的流程,适合新老师第一次上竞技场课。
(一)课前:老师需要做什么
- 确认技术环境:所有学生设备能正常访问扣哒世界;登录账号没问题(建议提前统一安排账号);目标竞技场能正常打开、加载不慢。
- 选好本节要用的竞技场:一般计算机科学类地图最后一关就是竞技场,尽量选一个与当前教学进度匹配的竞技场(比如刚学完循环与条件,就选以这类知识点为主的竞技场)。
- 自己先进去一遍:看清胜利条件;试着写一份最简单、能打赢"简单电脑"的代码;熟悉函数栏里都有什么函数。
- 准备一点辅助材料(可选):简单的"函数速查表"、一段自己录制的对战小视频或几张关键截图用于导入、"规则要点 + 金币消耗表"(如士兵 20 金币、弓箭手 25 金币)。
一句话备课自检:今天用哪个竞技场?胜利条件是什么?我能写出赢简单电脑的最简代码吗?学生大概会卡在哪一步?想清这四点,这节课就稳了。
(二)学生端操作:一步一步带着走
1. 进入竞技场(约 5 分钟)
老师可口头带步骤,全班同步操作:登录账号 → 找到"竞技场"(Arenas)入口 → 进入本节要用的竞技场 → 选择语言(建议用 Python)→ 初次建议选择"人机对战 — 简单"。
第一次上竞技场课,要给学生几分钟"瞎点一下、看看界面"的时间,减轻陌生感。
2. 引导学生"先看说明再写代码"(约 10–15 分钟)
三件事必须先做:
| 项目 | 内容 & 老师引导 |
|---|---|
| 看顶部目标说明 Goals | 例:"收集所有宝石并击败对手"。老师提问:"这一关想赢,需要做到哪几件事?" |
| 看代码注释 Comments | 系统通常在代码区留有注释,如 hero.attack("g")。老师提醒:注释里藏着关键玩法信息,必须认真读完。 |
| 看函数栏 & 提示 | 函数栏介绍可用函数;提示页面会写字母门对应关系、金币花费等。老师提问:"招募弓箭手要花多少金币?""哪个函数用来寻找最近的敌人?" |
3. 人机练习:先打败简单电脑(约 20 分钟)
1)老师示范:给一个足够简单但能赢的写法
# 无限循环:让英雄持续执行 while True: # 1. 先按照固定路线移动(示例,具体按地图调整) hero.moveDown() hero.moveRight() # 2. 攻击标记为 "g" 的门,释放盟友 hero.attack("g") # 3. 拿到宝石后有金币,可以招募士兵 if hero.gold >= 20: hero.say("soldier") # 4. 简单攻击逻辑:看到敌人就打 enemy = hero.findNearestEnemy() if enemy: hero.attack(enemy)
老师讲解时重点强调:while True: 后面的冒号不能少;循环内部要统一缩进(4 空格 / 1 Tab);字符串参数要加引号 "g" / "soldier";用注释 # ... 简单说明每一步。
2)学生模仿 & 自己调整。老师巡视时分层指导:基础弱的先保证语法不报错;基础好的鼓励加判断逻辑(如金币够了再招募)。
4. 升级到班级对战(约 5 分钟)
当多数学生能打败"简单电脑"后,让他们点击"升级比赛"按钮,进入班级竞技场模式。说明:现在的对手是真人同学,同样的代码结果可能不同。
5. 同学对战:策略迭代(约 20–25 分钟)
1)对战前,小优化一轮。引导学生思考:"我的代码现在最大的弱点是什么?"提供三种可选策略:
策略 A · 经济优先
先收集地图上所有宝石,再集中攻击门、招募单位。
策略 B · 速攻流
快速打开几个关键门,迅速召唤高输出单位。
策略 C · 稳健防守反击
优先建塔或招募防守单位保护自己,等对手浪费资源后再反扑。
2)开始对战。学生在班级列表中互相挑战。老师可以在投影上选几场典型对战现场观看,让全班一起看到不同策略的效果差异。
6. 评分、观战与反思
代码评分与排名:点击"为我的代码评分",系统生成胜率 / 积分。鼓励关注"比上一节课有没有进步"。
观战学习:组织学生观看班级积分靠前或全球高分玩家的对战,记录:"对手谁先收宝石?如果你是他,你会改哪一两行代码?"
竞技场上课:完整课例与进阶玩法
一个 90 分钟入门课例,加上竞赛集训与班级联赛的进阶用法。
课例示范:竞技场入门课(约 90 分钟)
| 时间 | 环节 | 核心活动 |
|---|---|---|
| 10 min | 导入 | 展示排行榜 / 对战视频。提问:"高分玩家差在哪?"明确目标:认识规则、赢简单电脑、学习改进。 |
| 20 min | 规则 & 函数探索 | 学生自读目标 / 注释 / 提示。老师提问检查(胜利条件?必用函数?金币来源?)。 |
| 20 min | 人机练习 | 老师示范拆解步骤。学生实操写代码(独立或结对),保证无报错。展示部分学生代码并点评。 |
| 25 min | 同学对战 | 升级到班级模式。学生自选策略(攻 / 防 / 经济)并微调代码,自由对战。记录:"策略是什么?下一步想改什么?" |
| 15 min | 思路分享 & 优化 | 选典型战例(胜 vs 败)。双方陈述思路。全班提出改进方案并现场小改代码验证效果。 |
课后延伸:优化代码尝试新策略;至少观看 2 场他人对战;挑战"更难的人机模式"。
竞技场用于竞赛 / 进阶训练
- 配合信奥 / CSP-J / USACO:在讲完某类算法(贪心 / 模拟 / 搜索)后,让学生在竞技场中用更高效的策略实现"占领资源""拦截敌人"等。
- 班级 / 校内联赛:一段时间内(如 2–4 周)只用一个竞技场,每周固定一节"联赛课",记录积分变化,设置段位(青铜、白银、黄金、铂金)。
- 分层目标:新手——能打败简单电脑、代码不报错;中级——班级对战胜率 ≥ 50%、能说清自己策略;高阶——熟练使用建塔 / 技能等高级函数,冲击班级 / 年级排行榜前列。
教学阶段与达成目标对照
用这张表快速判断学生处于哪个阶段、下一步该往哪儿推。
| 学生阶段 | 推荐模式 | 达成标志 | 下一步引导 |
|---|---|---|---|
| 新手 | 人机 · 简单 | 代码不报错,能赢简单电脑 | 加入条件判断,尝试收集宝石 |
| 入门 | 人机 · 中等 | 会用循环 + 条件控制英雄 | 升级到班级对战,观察真人对手 |
| 中级 | 班级对战 | 胜率 ≥ 50%,能说清策略 | 对比强者回放,优化策略稳定性 |
| 高阶 | 全球 / 赛事 | 熟练用建塔、技能等高级函数 | 参加 AI 世青赛,冲击排行榜 |
给新老师的教学技巧与常见问题
课堂话术、语法口诀与高频报错的排查方法,直接拿去用。
教学小技巧
- 反复强调:"先看说明再写代码"。
- 语法口诀:"循环冒号不能少,缩进四格要记牢"。
- 游戏话术:"现在你的英雄就是你写的 AI 机器人""优化代码 = 给你的英雄升级装备"。
- 鼓励观战学习:每周花 5–10 分钟,全班一起看几场优秀对战并讨论。
- 用进步榜:标注"本周进步最多"的学生,培养成长型思维,而不是只看绝对名次。
常见问题答疑
moveUp() / moveRight();必要时画在纸上。只要按照上面的思路走:先让学生在关卡里打好语法和基础,再把竞技场引入课堂做实战对抗,配合观战复盘。新老师就可以非常自然地开展一整套"学 — 练 — 赛 — 评"的编程课堂,让学生在对战中真正体会到: "我写的代码,真的能决定胜负。"