kards-env/INTERACTIVE_FEATURES.md

3.6 KiB
Raw Blame History

🎮 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管理
  • 调试模式支持

🔧 启动方式

# 方法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仅用于测试环境
  • 某些复杂单位能力尚未完全实现

📚 相关资源