关于象棋人工智能引擎 UCI 协议的改进意见

以下,没有创造性的功能,写这篇文章,主要是我对 XBoard(WinBoard)协议仍然有些好感。

改进后的协议仍然叫 UCI 协议,以下用旧版新版以作区分,改进如下:

  • 去除 OptionMap,意思是所有参数设置,全部变成指令形式,默认值由新版协议(或作者)预先定义。
  • 扩充 UCI 协议,代指所有棋类游戏,新版不止适用于国际象棋,还可以用于五子棋,围棋,中国象棋,飞行棋(非完全信息游戏)等等……
  • 部分参数解释,及微调(比如棋子坐标表示,参数指令转换,等等)……

如果您在文档阅读或实现过程中遇到任何问题,可以联系我。

以下举例说明:

  • 去除 OptionMap
    输入UCI 指令后,可以看到,不再包含 option 项了,新增汇报一个 variant 信息,体现在 info string 中。
旧版 新版
id name Shtoku Legend
id name Shtoku Legend
id author Wilbert Lee
id author Wilbert Lee
option …
uciok
uciok
info string …

对于部分参数解释,请参阅:《部分参数解释》章节

  • 扩充 UCI 协议
    新增 variant 指令,用于设置变体,使得引擎可以支持下不同变体的棋类。
    新增 boardsize 指令,用于设置棋盘大小,适用于变体固定的:五子棋、围棋。
    新增 offset 指令,用于设置行棋坐标偏移指定,目前仅针对中国象棋变体。
    新增 fenp 指令,辅助指令,用于设置飞行棋记录骰子信息,防止 fen 过于复杂,不输入 fenp 指令,程序也应正常运行。

Guess you like

Origin blog.csdn.net/ad44275783/article/details/121576335