中国象棋电脑应用规范——论中国象棋信息化的发展
象棋水平的发展是需要靠信息技术来推动的,国际象棋有两个很好的范例,一个是象棋棋谱编辑和对弈程序的公共平台——WinBoard平台,另一个是商业的国际象棋数据库和对弈软件——ChessBase,他们为国际象棋爱好者和研究者提供了极大的便利,目前这两个产品已经成熟。
中国象棋
然而,电脑在中国象棋上的运用还刚刚起步,尽管国内涌现出一大批中国象棋的专业网站和专业软件,但是由于缺乏必要的基础工作,电脑技术在中国象棋上的应用优势还无法体现出来,目前主要问题在于:
1、缺乏完整的象棋棋谱数据库。尽管各大象棋网站上都有棋谱下载专栏,近几年来国内各大比赛的完整对局记录,却很难在哪个网站上找到。至于数据库查询系统,更是遥不可及的事。
2、棋谱的记录缺乏统一的格式。统一的格式可以方便棋谱的批量处理,这对于建立棋谱数据库是非常关键的。然而现在最流行的象棋棋谱处理软件是XQStudio(象棋演播室),尽管这个软件是免费的,但其产生的文件是加密的,其他程序无法读取。棋谱研究工作者面对的是一大批很有价值的棋谱,可以对加密格式的XQF文件却无能为力。
3、象棋软件的开发缺乏专业化的队伍。ChessBase是专门开发国际象棋软件的企业,而国内对中国象棋软件有庞大的需求,却找不到一家专业的公司来开发,这无疑是一大遗憾。当然,国内盗版猖獗,知识产权保护意识差的软件环境,无疑是最根本的原因。
4、广大象棋软件开发的爱好者没有明确的目标。对于象棋软件来说,实用性仍旧是主要的评价标准,因此目前应用最广泛的XQStudio无疑是象棋研究者的首选。尽管很多程序员对XQStudio不屑一顾,但是很少有人能推出自己的产品,要么软件操作起来困难,要么宣传和推广的力度不够,要么因为软件收费而无人问津。所以现在出现一个奇怪的现象——棋谱格式被一个象棋软件所垄断,然而格式却是加密的,其他软件无法打开。我们注意到,国际象棋软件WinBoard之所以成功,跟它使用上的便利是分不开的。
5、对弈引擎没有统一的平台。目前比较流行的中国象棋对弈软件不下十种,但是软件设计者之间缺乏交流,设计软件时也不会做很系统的研究,因此象棋引擎的发展还处于初级阶段。“象棋引擎协议”既可以作为象棋引擎和象棋界面的通用接口,同时也可以成为不同象棋引擎相互交流的平台,只有象棋引擎协议建立之后,对人工智能有建树的学者才愿意把精力花在象棋引擎的开发中去。
6、没有系统的开局分类体系。国际象棋的开局分类体系以ECO(国际象棋开局百科)编号为主,由于中国象棋开局的特点与国际象棋差异很大,所以制定类似ECO的开局分类体系难度非常大。
国际象棋
这些都是需要解决的问题。这并不是一个简单的课题,好在我们可以借鉴国际象棋的做法。作者总编辑为该课题拟订一个计划:制订规范→建立平台→征集软件→建立数据库。万事开头难,为此专门开设《中国象棋电脑应用规范》专题,分四部分讨论中国象棋的各种规范:
1、着法的表示。着法是棋谱的基本元素,统一的着法表示应该为广大象棋爱好者所接受,同时方便键盘的输入,更重要的是它为开局体系的制定提供了方便。
2、FEN文件格式。FEN格式是记录象棋局面的规范,为中局和排局的发布提供方便,同时它也是棋谱格式和引擎协议的重要组成部分。
3、 PGN文件格式。PGN格式是记录象棋对局的规范,除了包含着法以外,还有棋局的其他信息以及注释,PGN规范是建立象棋棋谱数据库的基础。
4、中国象棋通用引擎协议(UCCI)。这是象棋界面与象棋引擎之间的通讯协议,从而使得象棋界面和象棋引擎的开发工作相对独立,它为专门从事象棋引擎设计的工作者提供了很大的便利,他们可以运用现成的界面来测试和推广自己的引擎。
有了以上四个要素,就可以建立中国象棋的公共平台了,象棋百科全书网总编辑把第一代中国象棋公共平台命名为“象堡”(ElephantBoard),得名于中国象棋中的“象”字与WinBoard的“Board”一词。
中国象棋
根据WinBoard的成功经验,应该具有以下功能:
(1) 棋谱录入和编辑。棋谱录入可以通过鼠标和键盘两种途径进行,而且可以添加棋局或比赛信息以及注释等,也可以按着法顺序向前或向后推演。棋谱文件格式必须是其他象棋软件通用的PGN格式。
(2) 自动识别开局。根据ECCO(中国象棋开局百科)的规则自动识别开局,并自动保存在PGN文件中(包括ECCO代码、开局名称以及变例)。开局信息只占PGN文件中的三个标签,但却是中国象棋棋谱的重要组成部分(通常作为棋局的标题)。
(3) 局面的设置。局面既可以从棋谱中读取,也可以故意摆出来,最好还能自动产生出版用的棋图。局面文件格式必须是其他象棋软件通用的FEN格式。
(4) 加载对弈引擎。这样就可以摇身一变成为对弈软件,引擎接口必须符合“中国象棋通用引擎协议”。