KARDS 交互式测试环境
一个功能丰富的命令行界面,用于测试和调试KARDS战斗引擎。
🚀 快速开始
启动环境
# 方法1: 使用启动脚本
./run_interactive.sh
# 方法2: 直接运行Python
.venv/bin/python interactive/interactive_test.py
基本操作流程
- 部署单位:
deploy <unit_id>
- 移动单位:
move <index> <line> <pos>
- 攻击目标:
attack <from> <to>
- 结束回合:
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 |
战线类型:
SUPPORT1 或 S1: 玩家1支援线
FRONT: 前线
SUPPORT2 或 S2: 玩家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
📝 注意事项
- 单位索引: 从0开始,按战场位置顺序编号
- 玩家ID: 0 = 玩家1,1 = 玩家2
- 保存文件: 存储在
interactive/saves/ 目录
- 历史文件: 命令历史保存在
interactive/.history
🐛 已知问题
- 保存/加载功能使用pickle,仅用于测试环境
- 某些复杂能力可能未完全实现
📚 相关文档