回复: 定义了一种新的棋谱文件格式,将在象棋桥的新版本中使用,大家多提提意见
说明一下 Board元素中value属性的含义
<Board value="jmxswsxmj10p5p1b1b1b1b1b18B1B1B1B1B1P5P10JMXSWSXMJ-r1" />
value属性中的值是用于定义初始棋盘信息的. 由三部分组成, "-"作为分割符.
分割符前面的为第一部分,用于定义初始布局;
分歌符后面第一个字符定义哪方先行,有"r"和"b"两种可能,"r"代表红方先行,"b"代表黑方先行;
先行方之后到字符串结束或下一个分割符(将来可能扩充,以便加入新的信息)之间的数字,代表当前已经进行到的回合数.
具体介绍一下第一部分:
jmxswsxmj10p5p1b1b1b1b1b18B1B1B1B1B1P5P10JMXSWSXMJ
字符串中的数字换成".",我们可以得到如下字符串
jmxswsxmj..........p.....p.b.b.b.b.b..................B.B.B.B.B.P.....P..........JMXSWSXMJ
该字符串共为90字节, 每9个字符为一组,共10组. 大写字母代表红方棋子, 小写字母代表黑方棋子,"."带表空位;象棋棋盘是9x10的,所以该结构正好和象棋棋盘从上到下一一对应.
字母对应的棋子:
J,j: 红车,黑车
M,m: 红马,黑马
X,x: 红相,黑象
S,s: 红仕,黑士
W,w: 红帅,黑将
P,p: 红炮,黑炮
B,b: 红兵,黑卒
如果字符串为空,代表默认的初始棋盘,红方先行,第一回合,用jmxswsxmj10p5p1b1b1b1b1b18B1B1B1B1B1P5P10JMXSWSXMJ-r1作为默认字符串处理就可以了