zklmiao/CodeWar
游戏在浏览器里用 Python 解题打回合制对战,解题越快攻击越强。
CodeWar 是一个网页端的回合制竞技游戏,面向想在限时压力下练 Python 的玩家:两名玩家在 5×5 棋盘上各控一名角色,每回合要从四道题对应的四种行动中只选一个——攻击、走位、格挡或放大招。它首先是游戏,编程是战斗机制,适合找编程对战玩法的个人或小圈子,而不是教程或判题平台。
一回合怎么打
四道题同时出现,回合窗口 75 秒,但只能提交一道。攻击题是镜像题,双方做同一道,完成越快,伤害的时间系数越高(0.6–1.0)。答错锁定 5 秒并自损 3 HP,只有全部用例通过行动才生效。难度是风险回报选择:上限越高,伤害和结算奖励系数也越高。HP 归零即 KO,10 回合打满按剩余 HP 裁决;同时归零算平局,ELO 双方不变(玩法规则)。
对局如何裁决
剑士、法师、游侠三个职业在 HP、攻击形状、移动和 2–4 回合冷却的技能上各不相同。服务端权威:客户端只渲染事件流、上行提交,一切由引擎裁决。题目来自 124 个模板组成的出题工厂:同 seed 必出同实例,便于测试复现;不同 seed 实例不同,背答案没用。真人、练习 Bot、脚本回放都走同一条提交入口,引擎对 Bot 没有特判(技术架构)。
可用模式与前提
当前可用:双浏览器窗口的本机热座 1v1、三档人机练习(不计战绩)、四关交互式教程(完成后解锁 PvP),以及带历史战绩和 ELO 的账号。在线排位 1v1 明确尚未实现:事件流协议和认输握手已就绪,匹配属于后续工作(Roadmap)。
推荐用 Docker Compose 一键起全栈,打开 localhost:3001。它要求本机 Docker daemon 运行,因为判题会通过 docker.sock 启动一次性 python:3.12-slim 沙箱容器。全栈包含 Go 1.26 服务端、Vue 3.5 客户端、Python 3.12 判题服务和 PostgreSQL 16。README 中的本地开发路径同样需要 Docker 跑判题,另外还需要 pip、Go 和 pnpm(快速开始)。
影响使用的许可条件
项目是源码可见(source-available),不是 OSI 开源。代码(含题库模板)采用 PolyForm Noncommercial 1.0.0:可自由非商用使用、修改和分发,但须保留 NOTICE 署名;文档内容采用 CC BY-NC-SA 4.0。任何商业用途,如商业产品集成、付费服务或商业分发,都需要作者书面许可(许可说明)。
本文由 AI 根据项目 README 生成,更新于 2026年10月30日,以项目官方文档为准。