Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HoopRogue · 战术大师

原创篮球肉鸽。没有技能卡,没有抽签变强——你只有一块战术板, 和一群会演戏的对手。杀戮尖塔的三件套被翻译成了篮球语言:

定位:没有运气的博弈。 读人、演戏、反演戏——克制矩阵就是牌桌, 体能就是筹码,对手的评分、演技和针对能力每一场都在涨。 这是整个项目栈的"策略"支柱。

杀戮尖塔 本作
每回合 3 点能量 每节 5 点体能,攻防共用
敌人意图公示 意图播报:对方下回合战术倾向(高级对手会演你)
卡牌构筑 战术板构筑:升级战术 / 学新战术 / 球队特质,全部确定性
地图路线 赛前抉择:休整 / 情报 / 主场(二选一)
Boss 战 第 5 场 BOSS:30% 演戏 + 针对你的常用战术 + 先到 15 分

核心循环

每回合一次决策:读播报 → 在体能预算内选战术 → 概率公开结算。 克制矩阵完全公开(游戏内按 M 查手册),胜负取决于决策质量。

进攻七种战术各有天敌:挡拆怕换防、强打怕包夹、空切怕联防, 唯独"巨星球的"无法被克制——但 3 点体能的代价不菲。

运行

python -m hooprogue              # 终端流式模式(唯一前端):全部输出打字机化
python -m hooprogue --auto       # 观战:AI 教练流式解说并决策
python -m hooprogue --speed 0.3  # 流式速度倍率(0 = 瞬时,测试用)
python -m hooprogue --manual     # 战术手册
python -m unittest discover -s tests
python tools/balance.py 100      # 平衡性标定

直播节奏

终端里所有输出都是打字机流式,速度由比赛事件决定——节奏本身在叙事:

  • 我方出手结果逐字缓慢揭晓,悬念停在"✓ +2"出现之前;
  • 对方得分更慢、停顿更长,沉重感;
  • 打铁、失误、防守成功中速急促,连续攻防像快节奏的文字实况;
  • 节末、骤死、BOSS 登场、赛前抉择之前刻意放慢铺垫;
  • 菜单与分隔线瞬时,不打断输入。

表情只保留极少量功能用途,正文用文字符号(▶ ◀ ★ ✓ ✗)与缩进区分角色。

决策与依据(代码不难,难的是这些)

说实话:克制矩阵是一个 dict,AI 决策是一个 argmax,流式输出是 sleep。 零件没有难的。真正的决定是下面几个,每个都有依据,多数被失败教过:

  1. 确定性构筑 > 随机技能卡。v0.1 有技能卡,变强靠抽签,策略深度为零; v0.2 推翻重做(git 历史在)。这是整个项目栈最贵的一课。
  2. 意图公示 + 演技。常规做法把信息藏起来让人猜;先把信息亮出来让推理成立, 再让高阶对手"演"——不确定性从运气变成读人。
  3. 平衡靠统计不靠感觉。balance.py 固定种子跑上百局出逐场胜率曲线。 踩过的坑:统计口径写错过一次,难度被误判——所以口径本身也要有测试盯着。
  4. 砍页面。tkinter 前端做完就删了:终端直播是完整体验,图形层是重复建设。
  5. 节奏即叙事。得分慢、丢分更慢、普通攻防急促——直播的紧张感不需要画面。

AI 教练

观战模式下,AI 教练像大模型一样流式输出思考过程(终端以竖线侧栏 | 标记)——但没有任何 API:narrate.rank_* 期望值函数既是它的 决策依据也是解说词的数据源,全部来自真实对局状态,同种子同解说。

平衡性

100 局自动对局(AI 全知决策的基准线):第 1 场胜率 83%, 此后 72% → 73% → 66% → BOSS 62%,夺冠率 18%。人类读播报会 更难,实际难度高于上表。数值集中在 plays.py / opponent.py

文档

策划书 docs/DESIGN.md;路线图 ROADMAP.md;总路线图 ../BASKETBALL_ROADMAP.md

License

MIT

About

战术大师 TACTICIAN — 无技能卡的杀戮尖塔式篮球肉鸽,终端流式直播(纯 Python 标准库)

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages