# KARDS 交互式测试环境 一个功能丰富的命令行界面,用于测试和调试KARDS战斗引擎。 ## 🚀 快速开始 ### 启动环境 ```bash # 方法1: 使用启动脚本 ./run_interactive.sh # 方法2: 直接运行Python .venv/bin/python interactive/interactive_test.py ``` ### 基本操作流程 1. **部署单位**: `deploy ` 2. **移动单位**: `move ` 3. **攻击目标**: `attack ` 4. **结束回合**: `endturn` ## 📖 命令参考 ### 显示命令 | 命令 | 简写 | 说明 | 示例 | |------|------|------|------| | `show [detailed]` | `s` | 显示战场状态 | `show detailed` | | `list [nation]` | `ls` | 列出可用单位 | `list germany` | | `info ` | `i` | 查看单位详情 | `info 0` | | `help` | `h`, `?` | 显示帮助 | `help` | ### 单位操作 | 命令 | 简写 | 说明 | 示例 | |------|------|------|------| | `deploy [pos]` | `d` | 部署单位 | `deploy ger_infantry_grenadier 0` | | `move ` | `m` | 移动单位 | `move 1 FRONT 0` | | `attack ` | `a` | 攻击目标 | `attack 0 2` | **战线类型**: - `SUPPORT1` 或 `S1`: 玩家1支援线 - `FRONT`: 前线 - `SUPPORT2` 或 `S2`: 玩家2支援线 ### 游戏控制 | 命令 | 简写 | 说明 | |------|------|------| | `endturn` | `end` | 结束当前回合 | | `reset` | - | 重置战场 | | `switch` | - | 切换活动玩家(调试) | ### 资源管理 | 命令 | 简写 | 说明 | 示例 | |------|------|------|------| | `kredits` | `k` | 查看资源状态 | `kredits` | | `setk ` | - | 设置Kredits | `setk 0 10` | | `sets ` | - | 设置Kredits Slot | `sets 0 12` | ### 测试场景 | 命令 | 说明 | 示例 | |------|------|------| | `scenarios` | 列出所有测试场景 | `scenarios` | | `scenario ` | 加载预设场景 | `scenario frontline` | **可用场景**: - `basic`: 基础部署测试 - `frontline`: 前线争夺战 - `squeeze`: 挤压机制测试 - `resources`: 资源管理测试 - `massive`: 大规模战斗 - `blitz`: 闪击单位测试 - `artillery`: 火炮测试 - `air`: 空战场景 ### 保存/加载 | 命令 | 说明 | 示例 | |------|------|------| | `save ` | 保存当前状态 | `save my_game` | | `load ` | 加载保存的状态 | `load my_game` | ## 🎮 使用示例 ### 基础对战流程 ```bash # 德军回合 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 # 结束回合 ``` ### 测试特定场景 ```bash scenario frontline # 加载前线战斗场景 show detailed # 查看详细战场状态 attack 0 2 # 火炮攻击前线单位 info 2 # 查看被攻击单位状态 ``` ### 资源管理测试 ```bash scenario resources # 加载资源测试场景 kredits # 查看当前资源 move 0 FRONT 0 # 尝试移动(消耗资源) kredits # 再次查看资源 setk 0 10 # 设置资源(调试) ``` ## 🎨 显示说明 ### 颜色编码 - 🔵 **蓝色**: 玩家1(德军) - 🔴 **红色**: 玩家2(美军) - 🟡 **黄色**: 资源和重要信息 - 🟢 **绿色**: 成功消息 - ⚪ **白色**: 中立/空位置 ### 单位图标 - 🚶 步兵 (Infantry) - 🚗 坦克 (Tank) - 🎯 火炮 (Artillery) - ✈️ 战斗机 (Fighter) - 💣 轰炸机 (Bomber) ### 战场布局 ``` [玩家1支援线] ↓ [前线战场] ↑ [玩家2支援线] ``` ## 💡 高级功能 ### 自动补全 使用 Tab 键自动补全命令。 ### 命令历史 使用上下箭头键浏览命令历史。 ### 批量测试 可以通过管道输入命令序列: ```bash cat demo_commands.txt | .venv/bin/python interactive/interactive_test.py ``` ## 🔧 调试功能 ### 查看单位详情 ```bash info # 显示单位的所有属性 ``` ### 强制切换玩家 ```bash switch # 立即切换到另一个玩家(跳过回合) ``` ### 设置任意资源 ```bash setk # 设置Kredits sets # 设置Kredits Slot ``` ## 📝 注意事项 1. **单位索引**: 从0开始,按战场位置顺序编号 2. **玩家ID**: 0 = 玩家1,1 = 玩家2 3. **保存文件**: 存储在 `interactive/saves/` 目录 4. **历史文件**: 命令历史保存在 `interactive/.history` ## 🐛 已知问题 - 保存/加载功能使用pickle,仅用于测试环境 - 某些复杂能力可能未完全实现 ## 📚 相关文档 - [战斗引擎文档](../README.md) - [单位定义规范](../assets/units/units_spec.yaml) - [测试用例](../tests/)