- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
国际象棋通用引擎协议
象棋百科全书网 ( HYPERLINK mailto:webmaster@ webmaster@)
2004年9月初稿,2006年2月修订
一、UCI协议的特点
UCI协议,全称是国际象棋通用引擎协议(Universal Chess Interface,直译作通用象棋接口)。它是开放的象棋引擎协议,所谓“开放的”引擎协议,指的是:
(1) 协议内容是公开的,并且可以免费使用;
(2) 你可以根据该协议自己编写象棋引擎,凡是支持该协议的界面,都可以使用你编写的引擎;
(3) 你可以根据该协议自己编写象棋界面,凡是支持该协议的引擎,都可以被你编写的界面调用。
UCI协议的前身是象棋引擎SOS和Shredder使用的引擎协议,在他们的作者Rudolf Huber和Stefan Meyer-Kahlen对该协议的改进下,2000年11月28日UCI协议问世了。
UCI协议具有以下特点:
(1) 引擎程序是可执行文件,它同界面程序之间通过“标准输入”和“标准输出”(即C语言中的stdin和stdout)来通讯。
(2) 输入和输出是以“行方式”来完成的,界面发给引擎的每条指令都必须以“回车”(即C语言中的\n)结束,界面接收引擎的反馈也一样。
注:引擎不能跨平台使用,如果引擎从一个平台(如Windows)移植到另一平台(如Unix),需要重新编译源代码,或使用跨平台接口。引擎的平台通常由三类:
A. DOS平台,但是由于DOS平台过于陈旧,现在很难找到这样的引擎;
B. Windows平台,需要在Windows下用Console方式编译引擎源代码,WinBoard只能使用这类引擎;
C. Unix/Linux平台;需要在Unix或Linux下编译源代码(也用Console方式),XBoard能够使用Linux的引擎。
(3) 引擎启动时,必须用“uci”指令让引擎进入UCI协议状态。当然,引擎也可以保留不使用UCI协议的权利,只要它接受的第一条有效指令允许不是“uci”。例如,很多UCI引擎允许第一条有效指令是“xboard”,这样引擎就转而进入WinBoard协议状态。
(4) 无论引擎是否在思考,都必须随时接收指令,这样界面程序就可以随时中断引擎的工作或改变引擎的思考方式了。每条指令都以特定的关键字开头,关键字和参数之间必须用空格隔开,这样可以简化引擎识别指令的过程。
(5) 界面必须随时接收引擎的反馈信息,每条反馈信息也都以特定的关键字开头(空格后面才是信息的实质内容),这样可以让界面更方便地识别每一条反馈信息。
(6) 引擎在搜索一个局面前,先要让界面把局面的位置告诉引擎,作为“内置局面”;
(7) 引擎必须接收到go指令后才开始思考(搜索);
(8) 如果对局是计时的,那么每次思考时都必须设定时钟,引擎仅仅根据时钟来决定思考策略,时钟的改变需要界面来完成;
(9) 当引擎完成一个局面的搜索,得到一步最佳着法后,并不改变“内置局面”,只是把这个着法反馈给界面,界面来完成这一步(当然,界面也可以让引擎走别的着法),再把走完这一步后的局面告诉引擎;
(10) 开局库通常由界面来指定给引擎,即通常引擎是不自带开局库的,当然引擎也可以自带开局库,此时界面可以让引擎根据引擎自己的开局库来完成开局的某步。
以上10个特点中,前5点和WinBoard协议是类似的,而后5点WinBoard协议和UCI协议则完全相反,因此WinBoard协议和UCI协议的指令也截然不同。
二、走棋格式
UCI协议用的走棋格式是“长代数格式”,即走动子的起始位置和到达位置,这里有几点需要注意:
(1) 不要标明“到达记号”、“吃子记号”、“将军记号”以及其他评注记号,例如第一步走e4,则记作e2e4,而不是e2-e4;
(2) 不要标明所走的子,例如走Nf6,则记作g8f6,而不是Ng8f6;
(3) 王车易位时只标明王的路线,例如走O-O,则记作e1g1;
(4) 兵升变时在最后注明只用一个字母注明升变的子,例如走e8=Q,则记作e7e8q。
三、输入和输出协议
输入协议就是界面向引擎发送指令的协议,协议内容通常由一系列指令集组成(用红色表示),输出协议则规定了引擎反馈给界面的信息,以及这些信息具体的含义(用蓝色表示)。
1. uci
这是引擎启动后,界面需要给引擎发送的第一条指令,通知引擎现在使用的是UCI协议。
2. id {name x | author x}
这是uci指令的反馈信息,显示
您可能关注的文档
- 降雨量等级划分.doc
- 国内企业物流配送运营状况及改进措施.doc
- 工业园区招标管理办法及工作流程.doc
- 谈室内设计中空间分隔secret.doc
- 健康妇科肿瘤诊治指南.doc
- 摄影技术用语集锦.doc
- 商业招商策划书范本.doc
- 肖邦钢琴作品曲目单.doc
- 限高架安装施工组织设计.doc
- 主要灾难题材电影清单.doc
- 2025浙江温州市公用事业发展集团有限公司面向高校招聘工作人考前自测高频考点模拟试题最新.docx
- 2025年蓬安县财政局下属单位招聘备考题库附答案.docx
- 广安市农业农村局2025年公开遴选市动物卫生监督所工作人员备考题库附答案.docx
- 南昌市劳动保障事务代理中心招聘3名劳务派遣驾驶员参考题库附答案.docx
- 2025浙江绍兴市新昌县机关事业单位招用编外聘用人员36人备考题库最新.docx
- 浙江国企招聘-2025嘉兴海盐县城市投资集团有限公司招聘7人笔试备考试题附答案.docx
- 长沙银行2026校园招聘备考题库最新.docx
- 2026年度中国地震局事业单位公开招聘备考题库附答案.docx
- 2025福建省晋江圳源环境科技有限责任公司招聘6人模拟试卷附答案.docx
- 浙江国企招聘-2025温州平阳县城发集团下属房开公司招聘5人公笔试备考试题附答案.docx
原创力文档


文档评论(0)