关于UCI引擎的基本问题:ucinewgame和多个客户端

时间:2019-06-10 14:32:21

标签: chess uci

我正在阅读UCI协议的规范,但不幸的是,我找不到有关其某些命令或用例的正当解释。

1)我不明白ucinewgame是什么意思。根据文档,它“开始新游戏”,但是,如果UCI引擎是无状态的,那么这到底意味着什么,因此,是否有新游戏并不重要?

2)与客户一起玩的更好的方法是,每增加一次移动(即从一开始就记录所有移动)或"position startpos moves ..."(仅反映当前位置),发送给引擎"position <fenstring>" ?我知道第二种情况更加紧凑,但是保留所有先前的举动有什么好处吗?

3)如果我想让多个玩家同时与引擎对战(每个玩家自己的游戏),我是否需要为每个玩家都拥有一个引擎实例?我知道引擎在忙于一名玩家时,它无法处理另一名玩家的移动,但是除此之外,我在这里看不到任何问题,我只需要在引擎准备就绪时从一个选定的玩家发送位置,并暂时阻止其他玩家?再说一次,ucinewgame有事要做吗?

1 个答案:

答案 0 :(得分:0)

好的,根据源代码,ucinewgame似乎只做一件事-它清除了训练数据。