# TODO for xboard-xiangqi

version 4.9.1-7, 2020-4-20 updated, by Careone

 * 已完成: #0002, #0004, #0006;

 * 未完成: #0001, #0003, #0005.

#### --------------- 
 
 * TODO #0001: 编写 XBoard 格式的中国象棋开局库 (ECO) ;
   进度: 
   优先级：低
      
 ** 格式可参考软件包 pgn-extract 中的 /usr/share/pgn-extract/eco.pgn 文件.
 ** 暂定保存为文件名 /usr/share/games/xboard/xiangqi/xboard-xiangqi-eco.pgn
    或者 xboard-xiangqi-ecco.pgn
    风险：XBoard 程序可能无法识别和处理 ECCO 标签, 只能识别ECO 标签。待验证。
 
 ** 或者适配软件包 hoichess 的 /usr/share/games/hoichess/hoixiangqi-book.dat
    注：软件包 hoichess 0.22 目前只有 hoichess-book.dat (国际象棋的 ECO 
    开局库)，暂无 hoixiangqi-book.dat (中国象棋的 ECO 开局库);

 ** 参考资料: 中国象棋开局编号——ECCO 2004
   http://www.xqbase.com/ecco/ecco_contents.htm


 * TODO #0002: 中国象棋引擎 ELEEYE（象眼）及其它引擎对 XBoard 的适配;
   进度: 已完成，但运行有缺陷，中途可能报错、停止运行。   
   优先级：低
   
   常见的中国象棋引擎 Linux 版本：eleeye_engine, ELEEYE （象眼）。
   详见: UCCI引擎列表
   http://www.xqbase.com/league/enginelist.htm

   对应的 Linux 版本中国象棋程序，主要有 gmchess (天书棋谈)，cnchess 两种，
   使用的都是 UCCI 协议（中国象棋通用引擎协议），而不是 XBoard/WinBoard 使用的
   UCI 协议（象棋通用引擎协议）。引擎程序可能采用下面的路径和文件名：
   /usr/games/ELEEYE
   /usr/games/eleeye_engine

   经测试，以上 ELEEYE 引擎，暂无法在 XBoard Linux 版本上正常使用，即使指定
   协议选项: xboard -fUCCI 。当然，也可能实际上已经支持 xboard, 只是我们还不了解
   相关的参数选项。

    
 * TODO #0003: 使用指定的中文字体文件，自动制作中国象棋棋子主题。
   优先级：低
   暂定选项参数：-mp, --make-piece [中文字体完整路径文件名];

   默认批量生成3种主题：
 ** mono: 单色/黑白模式。红方：白底黑字黑圈。黑方：黑底黑圈白字；
 ** redblack: 红黑模式。 红方：白底红字红圈。黑方：黑底黑圈白字；
 ** redblack2: 红黑模式。红方：白底红字红圈。黑方：白底黑圈黑字；
   中文字体，建议选用 Bold 粗体。
   
   其中，第3种主题截图后，如果转换成黑白模式，则红黑双方棋子不容易区分；也可以
   考虑直接用 babelstone 的两种中国象棋字体（字体本身就带有外圆圈）。官网:
   
   https://www.babelstone.co.uk/Fonts/Xiangqi.html
   https://www.babelstone.co.uk/Fonts/Download/BabelStoneXiangqi.ttf
   https://www.babelstone.co.uk/Fonts/Download/BabelStoneXiangqiColour.ttf
   注意：这两种象棋字体，黑方默认就是黑底白字，可以指定颜色为：X底白字，但不方便
   直接制作白底黑字的棋子图片（即 redblack2 主题)。请知悉。

   
 * TODO #0004: 转换其它中国象棋软件的棋子图片为 Xboard 支持的图片格式和命名规则。
   进度: 已完成。但基本上不再使用。
   优先级：中
   
   原因: XBoard 4.9.1 实际支持 PNG 和 SVG 两种格式的图片。其它图片格式可以很方便地
   转成 PNG 格式。另外，通过 pdf2svg 命令生成的 SVG 图片有一个风险：还需要手动调整图
   片四周的透明白边，否则棋图上两个相邻的棋子会紧贴在一起，没有间隙。整体显示效果不好。
   
   新命令: usr/share/games/xboard/xiangqi/develop/bin/xboard-xiangqi-piece2svg，
   能自动识别和处理更多的中国象棋程序的棋子图片命名规则，图片素材来源包括 Linux版，
   Windows 版，安卓版。
   
 ** 注意1：腾迅天天象棋(安卓版)。 如: assets/Images/redShuai0.png (红帅) 
     (提示: 从 天天象棋 转换生成的 SVG 图片为半成品，需要手动添加圆圈背景底色)
    目前只支持生成居中后的 PNG 图片（用户需要自行处理图片，添加圆圈背景底图），
    以及 透明背景的 SVG 图片（文件名已经自动调整）
   
 ** 注意2：东萍象棋(网页版)。如: zhcn/r5_24.gif (红帅), zhtw/r5_24.gif 
    官方原始棋子/棋盘图片资源压缩包中，自带的一套独立棋子 GIF 图片尺寸偏小 
    (24x24)，格式转换后得到的 SVG 棋子图片清晰度不够，故不采用。目前的方案是，
    从最大的棋子文字连体图片 中(红黑棋子各一张)，提取生成单个的 GIF 透明图片，
    再添加上相应尺寸的红底/黑底圆圈。同时，还会自动把一张 ln_49.gif 棋盘图片，
    裁切并转换格式，生成新的棋盘图片 xqboard-dpxq.png


 * TODO #0005: XBoard 格式的象棋局面 FEN 文件，类型可以再细分。
	当前自带的 MIME 文件类型鉴定数据文件 xboard-xiangqi.xml 中，
	只定义了两种类型：1. XBoard 中国象棋 FEN (实际上也可能是日本将棋); 
	2. XBoard 象棋 FEN (可能是国际象棋，或者是其它象棋变种，暂无样例支持，
	对中国	用户的意义也不大)。说明：标准中国象棋 FEN 文件头，带有 [FEN] 
	标签，有明显不同，不会和 XBoard 的 FEN 混淆。
   优先级：低


 * TODO #0006: (注: version 4.9.1-4, 2020-2-22 已实现)
	把 xboard 中国象棋的个人配置文件，指定为其它。如:
	~/.xboard-xiangqi-rc 
	参考系统配置文件: /usr/share/games/xboard/conf/xq
	当前的风险:
	如果用户运行 xboard-xiangqi 启动中国象棋后，退出时，默认会保存
	中国象棋的引擎、棋盘图片、棋子图片目录信息到个人配置文件 ~/.xboardrc 。
	这样会有一个风险：如果用户再运行 xboard 想玩国际象棋时，显示的棋子、棋盘
	图片可能会是上次玩过的中国象棋。
