Arena Mechanics Guide

看懂竞技场机制,第一次就能上好课 Arena Teaching Guide

这是一份面向新老师的竞技场实战指南。从竞技场到底是什么、和普通关卡有何不同,到课前准备、学生端逐步操作、完整课例、竞赛进阶玩法和常见问题答疑,一次讲清。看完这一页,你就能自然地组织一整套"学 — 练 — 赛 — 评"的编程课堂。

Part 01

什么是扣哒世界的竞技场

先理解竞技场的定位与特点,才能想清楚这节课要带学生达成什么目标。

竞技场的核心定位

在扣哒世界里,普通关卡与竞技场有着本质的区别:

普通关卡
定位:做题练习
  • 系统给你一个固定任务
  • 写出一套能过关的代码就算完成
  • 核心:练基本功
竞技场
定位:实战 + 策略 + 竞赛
  • 不仅要会写代码,还要会设计策略
  • 对手不再是固定电脑,而是"活的策略"
  • 是"学 — 练 — 赛 — 评"的封闭循环
  • 核心:练实战能力 + 策略思维

本质差别:学生用 Python 或 C++ 写程序控制英雄,决定怎么移动、什么时候攻击、招募什么单位、建什么塔。在有限金币、时间、地形限制下自己设计作战方案,代码要能打赢各种不同写法的同学。

竞技场的核心特点

(1)双语言支持:Python 与 C++

Python语法简洁,适合入门、兴趣班、普及班。
C++贴近信奥 / CSP-J / USACO 的主流竞赛语言,适合进阶班和竞赛班。

通常建议:零基础 / 初学先统一用 Python;有明确信奥 / CSP 目标后,后期再转 C++ 竞技场。

(2)多种对战模式

  • 人机练习模式:对战预设电脑 AI(简单 / 中等 / 困难),适合作为入门和策略试验场。
  • 班级对战模式:同班学生用各自代码互相对战,可用于课堂小比赛、班级联赛等。
  • 全球玩家对战模式:参加 AI 世青赛或 Code Quest 等比赛,和全世界玩家、其他学校学生的代码对决,学生能看到自己在更大范围内的水平。

建议教学顺序:先人机、再班级、再全球——学生心理压力小、体验感更好。

STAGE 01

人机练习

对战电脑 AI,先建立信心,把语法和基础策略跑通。

STAGE 02

班级对战

和同学代码互搏,理解"对手是活的",开始迭代策略。

STAGE 03

全球对战

参加赛事,与全球选手同台,找到差距与提升方向。

(3)完整训练闭环

竞技场提供了一个完整闭环,特别适合作为阶段性总结课、单元项目课、竞赛集训课的核心内容:

STEP 01
规则学习阅读说明、提示、函数栏
STEP 02
代码编写写出自己的英雄行为逻辑
STEP 03
实战对抗与电脑 / 同学 / 全球玩家对战
STEP 04
评分反馈系统模拟大量对战,生成胜率 / 积分 / 排名
STEP 05
回放观战复盘关键对局
STEP 06
策略优化改代码 → 再对战 → 再复盘

Part 02

如何使用竞技场:老师与学生双视角流程

一套可直接照着走的流程,适合新老师第一次上竞技场课。

(一)课前:老师需要做什么

  • 确认技术环境:所有学生设备能正常访问扣哒世界;登录账号没问题(建议提前统一安排账号);目标竞技场能正常打开、加载不慢。
  • 选好本节要用的竞技场:一般计算机科学类地图最后一关就是竞技场,尽量选一个与当前教学进度匹配的竞技场(比如刚学完循环与条件,就选以这类知识点为主的竞技场)。
  • 自己先进去一遍:看清胜利条件;试着写一份最简单、能打赢"简单电脑"的代码;熟悉函数栏里都有什么函数。
  • 准备一点辅助材料(可选):简单的"函数速查表"、一段自己录制的对战小视频或几张关键截图用于导入、"规则要点 + 金币消耗表"(如士兵 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. 评分、观战与反思

代码评分与排名:点击"为我的代码评分",系统生成胜率 / 积分。鼓励关注"比上一节课有没有进步"。

观战学习:组织学生观看班级积分靠前或全球高分玩家的对战,记录:"对手谁先收宝石?如果你是他,你会改哪一两行代码?"


Part 03

竞技场上课:完整课例与进阶玩法

一个 90 分钟入门课例,加上竞赛集训与班级联赛的进阶用法。

课例示范:竞技场入门课(约 90 分钟)

时间环节核心活动
10 min导入展示排行榜 / 对战视频。提问:"高分玩家差在哪?"明确目标:认识规则、赢简单电脑、学习改进。
20 min规则 & 函数探索学生自读目标 / 注释 / 提示。老师提问检查(胜利条件?必用函数?金币来源?)。
20 min人机练习老师示范拆解步骤。学生实操写代码(独立或结对),保证无报错。展示部分学生代码并点评。
25 min同学对战升级到班级模式。学生自选策略(攻 / 防 / 经济)并微调代码,自由对战。记录:"策略是什么?下一步想改什么?"
15 min思路分享 & 优化选典型战例(胜 vs 败)。双方陈述思路。全班提出改进方案并现场小改代码验证效果。

课后延伸:优化代码尝试新策略;至少观看 2 场他人对战;挑战"更难的人机模式"。

竞技场用于竞赛 / 进阶训练

  • 配合信奥 / CSP-J / USACO:在讲完某类算法(贪心 / 模拟 / 搜索)后,让学生在竞技场中用更高效的策略实现"占领资源""拦截敌人"等。
  • 班级 / 校内联赛:一段时间内(如 2–4 周)只用一个竞技场,每周固定一节"联赛课",记录积分变化,设置段位(青铜、白银、黄金、铂金)。
  • 分层目标:新手——能打败简单电脑、代码不报错;中级——班级对战胜率 ≥ 50%、能说清自己策略;高阶——熟练使用建塔 / 技能等高级函数,冲击班级 / 年级排行榜前列。

教学阶段与达成目标对照

用这张表快速判断学生处于哪个阶段、下一步该往哪儿推。

学生阶段推荐模式达成标志下一步引导
新手人机 · 简单代码不报错,能赢简单电脑加入条件判断,尝试收集宝石
入门人机 · 中等会用循环 + 条件控制英雄升级到班级对战,观察真人对手
中级班级对战胜率 ≥ 50%,能说清策略对比强者回放,优化策略稳定性
高阶全球 / 赛事熟练用建塔、技能等高级函数参加 AI 世青赛,冲击排行榜

Part 04

给新老师的教学技巧与常见问题

课堂话术、语法口诀与高频报错的排查方法,直接拿去用。

教学小技巧

  • 反复强调:"先看说明再写代码"。
  • 语法口诀:"循环冒号不能少,缩进四格要记牢"。
  • 游戏话术:"现在你的英雄就是你写的 AI 机器人""优化代码 = 给你的英雄升级装备"。
  • 鼓励观战学习:每周花 5–10 分钟,全班一起看几场优秀对战并讨论。
  • 用进步榜:标注"本周进步最多"的学生,培养成长型思维,而不是只看绝对名次。

常见问题答疑

Q:代码总报错?
按顺序排查:1)冒号有没有;2)缩进是否对齐;3)字符串有没有加引号;4)变量是否先定义。先读错误信息。
Q:英雄走不到宝石那儿?
让学生打开地图,用手指划一下英雄路线,再把路线变成一行行的 moveUp() / moveRight();必要时画在纸上。
Q:金币老是不够?
提醒:要么路线问题导致宝石收集少,要么招募花太多钱;让学生算算"招募数 × 单价",看合不合理。
Q:一直被对手秒杀?
引导反思:对手是不是先建塔、先招募远程?自己的英雄是不是冲太前?鼓励加上"血量过低就后退"的逻辑。
Q:不会用高级函数?
带他看函数栏中的说明示例,先照着抄一小段实现最简单功能,再逐步加入条件判断。

只要按照上面的思路走:先让学生在关卡里打好语法和基础,再把竞技场引入课堂做实战对抗,配合观战复盘。新老师就可以非常自然地开展一整套"学 — 练 — 赛 — 评"的编程课堂,让学生在对战中真正体会到: "我写的代码,真的能决定胜负。"

Next Step

准备好了?去挑一个竞技场开始上课

回到竞技场资源库,按学生水平和课堂场景挑选合适的竞技场,配套课件、视频与课堂模板都已备齐。使用中遇到任何问题,欢迎扫码联系教研团队。

教研支持二维码 扫码进入教研支持