# 🎮 KARDS 交互式测试环境 - 功能总结 ## ✅ 已修复的问题 1. **提示符显示问题** - 原始: `[Germany] T1.0 K1>`(不清晰) - 修复后: `P1:Germany [回合1] K:1/1 >`(清晰显示玩家、回合、资源) 2. **前线控制权显示错误** - 问题: `AttributeError: 'BattleLine' object has no attribute 'controller'` - 修复: 使用 `battlefield.front_line_controller` 代替 `front_line.controller` 3. **WSL终端Tab补全问题** - 解决方案: 创建了简化版 `interactive_simple.py`,不依赖readline - 提供启动选项: `./run_interactive.sh simple` ## 🚀 两个版本对比 ### 完整版 (interactive_test.py) - ✅ 命令历史记录 - ✅ Tab自动补全(需要兼容的终端) - ✅ 保存/加载功能 - ✅ 命令历史文件 ### 简化版 (interactive_simple.py) - ✅ 不依赖readline,兼容所有终端 - ✅ 清晰的提示符格式 - ✅ 快速帮助命令 `?` - ✅ 适合WSL和SSH环境 ## 📊 提示符格式说明 ``` P1:Germany [回合1] K:3/5 > │ │ │ │ │ │ │ └── Kredits: 当前3/最大5 │ │ └────────── 当前回合数 │ └──────────────────── 玩家名称 └───────────────────────── 玩家编号(P1/P2) ``` 颜色编码: - 🔵 蓝色: 玩家1 - 🔴 红色: 玩家2 - 🟡 黄色: 资源信息 - 🔷 青色: 回合信息 ## 🎯 核心功能列表 ### 1. 战场可视化 - 彩色终端显示 - 单位图标(🚶步兵 🚗坦克 🎯火炮 ✈️战斗机 💣轰炸机) - 前线控制权显示 - 资源条可视化 ### 2. 命令系统 - 30+ 个命令 - 命令简写支持 - 快速帮助 (`?`) - 详细帮助 (`help`) ### 3. 测试场景 - 8个预设场景 - 快速场景加载 - 场景列表查看 ### 4. 单位管理 - YAML单位加载 - 单位部署/移动/攻击 - 单位详情查看 ### 5. 资源控制 - Kredits查看和设置 - Kredits Slot管理 - 调试模式支持 ## 🔧 启动方式 ```bash # 方法1: 使用启动脚本(自动选择版本) ./run_interactive.sh # 完整版 ./run_interactive.sh simple # 简化版 # 方法2: 直接运行Python .venv/bin/python interactive/interactive_test.py # 完整版 .venv/bin/python interactive/interactive_simple.py # 简化版 # 方法3: 批量测试 ./interactive/run_all_tests.sh # 运行所有功能测试 ``` ## 📝 文件结构 ``` /interactive/ ├── interactive_test.py # 完整版主程序 ├── interactive_simple.py # 简化版主程序(WSL友好) ├── battle_visualizer.py # 战场可视化模块 ├── command_parser.py # 命令解析器 ├── test_scenarios.py # 测试场景 ├── demo_commands.txt # 演示命令序列 ├── run_all_tests.sh # 批量测试脚本 ├── README.md # 详细文档 └── saves/ # 保存文件目录 ``` ## 💡 使用建议 1. **WSL用户**: 使用简化版 `./run_interactive.sh simple` 2. **Linux/Mac用户**: 可以使用完整版享受Tab补全 3. **测试新功能**: 先加载相关场景,如 `scenario frontline` 4. **快速帮助**: 随时输入 `?` 查看常用命令 ## 🐛 已知限制 - Tab补全在某些终端环境下可能不工作(使用简化版解决) - 保存/加载使用pickle,仅用于测试环境 - 某些复杂单位能力尚未完全实现 ## 📚 相关资源 - [快速入门](INTERACTIVE_QUICKSTART.md) - [详细文档](interactive/README.md) - [战斗系统说明](README.md) - [YAML单位规范](assets/units/units_spec.yaml)