/xiangqi-tools

**象棋相关的工具,包含3个命令行程序: xiangqi-fen2text, xiangqi-fen2pic, xiangqi-ubb2fen

Primary LanguageShellBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

xiangqi-tools

**象棋相关的工具,包含3个命令行程序: xiangqi-fen2text, xiangqi-fen2pic, xiangqi-ubb2fen

changelog for xiangqi-tools coding: utf-8

2018-3-12 version 1.2, by Careone

* 更新 /usr/games/xiangqi-fen2pic 1.1 -> 1.2;

** 调整了生成的图片文件的命名规则:以前是用“年月日-时分秒”来命名图片文件,
改为8位字符加上图片扩展名的形式,如 18cv0001.jpg 
说明:前2位数字代表2018年;第3位1-9, a-c 代表1-12月;
      第4位1-9, a-v 代表1-31号;最后的4位数字代表0001-9999的数字序号。
      超过4位数字,则以实际数字为准;
并启用一个隐藏的编号参数文件,保存和累计更新数字序号。
文件名: ~/xiangqi/pic/.pic_index

** 新增选项 --tips-gifs, 提示如何使用convert命令把生成的多个棋局图片,
   转换成GIF动画, 以及 convert 命令的其它常用技巧;
	
* 微调了部分FEN示例文件的文件名。
  文件目录位置: usr/share/xiangqi/fen/	

* 更新了FEN示例文件 fen/shiqingyaqu551.fen
  文件目录位置: usr/share/xiangqi/fen/	
参照《适情雅趣》551局-李浭-新版本,对变更过的棋局名称、FEN数据进行了同步
更新,并调整了棋局序号:原1-226局编号不变;插入补图复原的第227局-舍生取义,
原第227-550局顺延为第228-551局。同时,新增备注文件:

    适情雅趣_551局_李浭_新版本与_550局旧版本的区别.txt

2018-3-08 version 1.1, by Careone

* 更新 /usr/games/xiangqi-fen2pic 1.0 -> 1.1;

** 新增主题: wood3-50 (木纹红黑棋子/木质棋盘,棋子大小50x50像素);

** 新增选项: --list-fen, 列出象棋FEN示例文件。共14个FEN复合数据文件。
   目录位置: /usr/share/xiangqi/fen/
   其中13个文件的FEN数据来自“象棋巫师(xqwizard)”的EPD残局库文件,
   还有一个来自《适情雅趣》残局谱; 

** 新增选项: --random, 可随机生成一张象棋残局图片。残局选自《适情雅趣》
   残局谱550+1例, 对应文件为 usr/share/xiangqi/fen/shiqingyaqu551.fen 

** 其它细节微调和代码优化;

* 添加开发相关附加脚本命令(仅供开发用,不适用普通用户):
  + usr/share/xiangqi/dev/bin/shiqingyaqu550-xqf2pgn.sh
    转换象棋《适情雅趣》残局谱550例的XQF棋谱为PGN棋谱;

  + usr/share/xiangqi/dev/bin/xiangqi-epd2fen.sh
    转换象棋“象棋巫师(xqwizard)”的13个EPD残局库文件为FEN复合数据格式;

2018-2-28 version 1.0, by Careone

* added/updated: 更新并调整了主题和默认使用主题;

* updated: usr/games/xiangqi-fen2pic (version 0.4 -> 1.0);

** 调整 xiangqi-fen2pic 相关的主题目录位置:
   原目录:usr/share/xiangqi-tools/themes/
   新目录:usr/share/xiangqi/themes/

** 优化程序代码,同时对FEN数据进行必要的检查、过滤和错误信息输出;

** 支持LOG功能。部分出错信息自动保存到
   ~/xiangqi/log/xiangqi-fen2pic.log
  BUG: 编写了一个用户级的日志行为,但似乎无法正常轮换和备份。待跟进。
  ( etc/logrotate.d/xiangqi-fen2pic )

** 支持3种模式读取FEN(象棋布子数据):
  + input: 即不带参数,直接运行命令,然后在提示下手动输入FEN数据。
	可连续多次输入FEN;
  + string: 即在命令行给出FEN附加参数。可用于命令管道操作
	(通过 --fen 选项实现);
  + file:   从文件中读取FEN数据。支持在同一个PGN/FEN格式中,读取一组或
	多组FEN数据(通过 --file 选项实现);
  
** 新增更多选项:
  + --event: 在图片中添加棋局备注文字。如“XXX先胜XXX”,等等;
  + --resize: 按比例或指定图片的宽度,缩放图片;
  + 默认在图片最下方添加FEN数据(如果棋子小于40x40的主题,则默认不添加FEN);
  + 其它更多选项; 

** 新增调试相关:在 usr/share/xiangqi/debug/ 目录下,存放有调试程序用的
  测试脚本和示例文件;

TODO & BUGS:

* 选项 --file, --string 的处理方式仍不理想,无法正常处理多个文件或多组
字符串输入(目前只能处理单个文件/单组字符串);

* 对截取的FEN数据的初步检验和过滤功能暂不完整,待完善和优化;

附:当前检验和处理流程:先把FEN数据中的9个斜杠分隔符(/)用sed强制添加
换行符,通过行数来判定是否是10行(对应10行棋子)。如果缺少一行或多行,则在
最后一行(即数组值row0[@],红方底线)加入一个错误的棋子图片unknown.png
(通常是一个黑白格马赛克图片)来进行标示。

* 部分操作中,无法有效识别“错误的FEN数据”(如某一行多子/少子,或者缺行/多行)
如:
  [FEN "rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C5C1/9/RNBAKABN"]
** 错误1 (E800): row0 单行棋子数量少于9个 (row9 -> row0)

方式1(功能正常):
直接运行命令 xiangqi-fen2pic, 再输入FEN:
能准确分析FEN数据并报错;

方式2(功能正常):
运行命令(带FEN数据) 
xiangqi-fen2pic "rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C5C1/9/RNBAKABN"
能准确分析FEN数据并报错;

方式3(功能异常)*:
运行命令(带--fen 参数和 FEN数据) 
xiangqi-fen2pic --fen "rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C5C1/9/RNBAKABN"
异常内容:未提示FEN数据错误;

2018-2-11 version 0.4, by Careone

* added/updated: 更新并调整了4种主题; 默认使用主题: mono-40:
	40x40棋子,黑白棋子/棋盘,棋盘上带有数字1-9,一到九路数;

* updated: usr/games/xiangqi-fen2pic (version 0.3 -> 0.4);

2018-2-07, version 0.1, by Careone

* new: usr/games/xiangqi-fen2pic  (version 0.3 -> 0.4);
* new: usr/games/xiangqi-fen2text (version 0.2);
* new: usr/games/xiangqi-ubb2fen  (version 0.1.1);