xiangqi_tui 0.1.0

Chinese chess (Xiangqi) TUI client with UCI/UCCI engine and opening book support
# Interaction

## 版面定义

- `A`: 棋盘
- `B`: 游戏按钮组
- `C`: 交互命令输入区
- `D`: 实时评估区

## 棋盘坐标系

界面与引擎使用 **同一套全局 UCI**(红方在下,如炮二平五恒为 `h2e2`):

- 最左侧:`0 1 2 3 4 5 6 7 8 9`
- 最下侧:`a b c d e f g h i`
- `旋转` 只翻转棋子显示与鼠标/键盘的屏幕映射,不改变着法字符串

着法输入格式:

```text
[a-i][0-9][a-i][0-9]
```

示例:`h2e2`、`h0g2`

### 键盘(焦点在棋盘)

- **方向键**:移动光标
- **空格**:选中己方棋子 → 点目标格走子;已选中时再点己方棋子为改选
- 选子格(绿)与光标格(黄)以 **网格线变色** 标示,拐角不着色以免伸进邻格

## 命令大全

### 普通输入

- 任意合法四字符 UCI/UCCI 着法

### Slash 命令

| 命令 | 说明 |
|------|------|
| `/new` | 新游戏(先停模式与引擎) |
| `/undo` | 悔棋 |
| `/prev` | 上一步 |
| `/next` | 下一步 |
| `/rai` | 红 AI 开关 |
| `/bai` | 黑 AI 开关 |
| `/query` | 查询模式开关 |
| `/rotate` | 旋转棋盘 |
| `/copyfen` | 复制 FEN 到系统剪贴板 |
| `/pastefen <FEN>` | 粘贴 FEN(整段可含空格,如 `w - - 0 1`|
| `/stop` | 停止红/黑电脑、查询、实时评估与引擎流 |
| `/help` | 操作说明浮层(Esc 关闭) |
| `/eval` | 实时评估开关 |
| `/exit` `/quit` | 退出 |

`C` 区为单一输入框,横跨底部,不拆独立命令检索面板。输入 `/` 可打开命令列表;**↑/↓** 浏览命令历史时不会意外退出输入模式。

## 功能按钮全集

`B` 区:红电脑、黑电脑、查询、新游戏、悔棋、旋转、上一步、下一步、复制 FEN、粘贴 FEN、实时评估。

## 停止 / 新局 / 终局

| 操作 | 行为 |
|------|------|
| `/stop` | 停止模式、引擎流、自动走子;**不改变**当前棋谱 |
| `/new` | 先执行与 `/stop` 相同的停止逻辑,再开新局 |
| 将死/困毙 | **自动**停止模式与引擎;**不会**自动 `/new` |
| 终局后 | 可用上一步/下一步或 `/prev` `/next` 浏览本盘棋谱 |

悔棋离开终局后可继续下子;分析/电脑模式需手动再开。

## 视觉与提示

- 显示上一手走子记号
- 查询模式与自动走子:落子前显示箭头
- `D` 区上半部 7 项:用时、深度、NPS、节点、分数、推荐、红/黑胜率
- `D` 区下半部 PV 列表,单条最多 16 步
- 查询/实时期间 `pv``best_move` 可随引擎流变化
- **开局库命中**时:查询、实时评估、红/黑电脑均不再启动引擎,D 区与箭头仅来自棋库
- 无计时器、无沙盘、无「查看思考细节」

## 参考

按钮与引擎调度对齐 GUI:`C:\projects\77xiangqi`。