208 lines
4.9 KiB
Markdown
208 lines
4.9 KiB
Markdown
# KARDS 交互式测试环境
|
||
|
||
一个功能丰富的命令行界面,用于测试和调试KARDS战斗引擎。
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 启动环境
|
||
|
||
```bash
|
||
# 方法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` |
|
||
|
||
**战线类型**:
|
||
- `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` |
|
||
|
||
## 🎮 使用示例
|
||
|
||
### 基础对战流程
|
||
|
||
```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 <index> # 显示单位的所有属性
|
||
```
|
||
|
||
### 强制切换玩家
|
||
|
||
```bash
|
||
switch # 立即切换到另一个玩家(跳过回合)
|
||
```
|
||
|
||
### 设置任意资源
|
||
|
||
```bash
|
||
setk <player> <amount> # 设置Kredits
|
||
sets <player> <amount> # 设置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/) |