kards-env/interactive/README.md

4.9 KiB
Raw Permalink Blame History

KARDS 交互式测试环境

一个功能丰富的命令行界面用于测试和调试KARDS战斗引擎。

🚀 快速开始

启动环境

# 方法1: 使用启动脚本
./run_interactive.sh

# 方法2: 直接运行Python
.venv/bin/python interactive/interactive_test.py

基本操作流程

  1. 部署单位: deploy <unit_id>
  2. 移动单位: move <index> <line> <pos>
  3. 攻击目标: attack <from> <to>
  4. 结束回合: endturn

📖 命令参考

显示命令

命令 简写 说明 示例
show [detailed] s 显示战场状态 show detailed
list [nation] ls 列出可用单位 list germany
info <index> i 查看单位详情 info 0
help h, ? 显示帮助 help

单位操作

命令 简写 说明 示例
deploy <unit_id> [pos] d 部署单位 deploy ger_infantry_grenadier 0
move <index> <line> <pos> m 移动单位 move 1 FRONT 0
attack <from> <to> a 攻击目标 attack 0 2

战线类型:

  • SUPPORT1S1: 玩家1支援线
  • FRONT: 前线
  • SUPPORT2S2: 玩家2支援线

游戏控制

命令 简写 说明
endturn end 结束当前回合
reset - 重置战场
switch - 切换活动玩家(调试)

资源管理

命令 简写 说明 示例
kredits k 查看资源状态 kredits
setk <player> <amt> - 设置Kredits setk 0 10
sets <player> <amt> - 设置Kredits Slot sets 0 12

测试场景

命令 说明 示例
scenarios 列出所有测试场景 scenarios
scenario <name> 加载预设场景 scenario frontline

可用场景:

  • basic: 基础部署测试
  • frontline: 前线争夺战
  • squeeze: 挤压机制测试
  • resources: 资源管理测试
  • massive: 大规模战斗
  • blitz: 闪击单位测试
  • artillery: 火炮测试
  • air: 空战场景

保存/加载

命令 说明 示例
save <filename> 保存当前状态 save my_game
load <filename> 加载保存的状态 load my_game

🎮 使用示例

基础对战流程

# 德军回合
deploy ger_infantry_grenadier     # 部署步兵
deploy ger_tank_panzer_iv         # 部署坦克
move 1 FRONT 0                    # 移动步兵到前线
endturn                           # 结束回合

# 美军回合
deploy usa_infantry_marine        # 部署陆战队
move 1 FRONT 1                   # 移动到前线
attack 1 0                        # 攻击德军步兵
endturn                          # 结束回合

测试特定场景

scenario frontline               # 加载前线战斗场景
show detailed                    # 查看详细战场状态
attack 0 2                       # 火炮攻击前线单位
info 2                          # 查看被攻击单位状态

资源管理测试

scenario resources              # 加载资源测试场景
kredits                        # 查看当前资源
move 0 FRONT 0                 # 尝试移动(消耗资源)
kredits                        # 再次查看资源
setk 0 10                      # 设置资源(调试)

🎨 显示说明

颜色编码

  • 🔵 蓝色: 玩家1德军
  • 🔴 红色: 玩家2美军
  • 🟡 黄色: 资源和重要信息
  • 🟢 绿色: 成功消息
  • 白色: 中立/空位置

单位图标

  • 🚶 步兵 (Infantry)
  • 🚗 坦克 (Tank)
  • 🎯 火炮 (Artillery)
  • ✈️ 战斗机 (Fighter)
  • 💣 轰炸机 (Bomber)

战场布局

[玩家1支援线]
   ↓
[前线战场]
   ↑
[玩家2支援线]

💡 高级功能

自动补全

使用 Tab 键自动补全命令。

命令历史

使用上下箭头键浏览命令历史。

批量测试

可以通过管道输入命令序列:

cat demo_commands.txt | .venv/bin/python interactive/interactive_test.py

🔧 调试功能

查看单位详情

info <index>  # 显示单位的所有属性

强制切换玩家

switch  # 立即切换到另一个玩家(跳过回合)

设置任意资源

setk <player> <amount>  # 设置Kredits
sets <player> <amount>  # 设置Kredits Slot

📝 注意事项

  1. 单位索引: 从0开始按战场位置顺序编号
  2. 玩家ID: 0 = 玩家11 = 玩家2
  3. 保存文件: 存储在 interactive/saves/ 目录
  4. 历史文件: 命令历史保存在 interactive/.history

🐛 已知问题

  • 保存/加载功能使用pickle仅用于测试环境
  • 某些复杂能力可能未完全实现

📚 相关文档