我正在阅读UCI协议的规范,但不幸的是,我找不到有关其某些命令或用例的正当解释。
1)我不明白ucinewgame
是什么意思。根据文档,它“开始新游戏”,但是,如果UCI引擎是无状态的,那么这到底意味着什么,因此,是否有新游戏并不重要?
2)与客户一起玩的更好的方法是,每增加一次移动(即从一开始就记录所有移动)或"position startpos moves ..."
(仅反映当前位置),发送给引擎"position <fenstring>"
?我知道第二种情况更加紧凑,但是保留所有先前的举动有什么好处吗?
3)如果我想让多个玩家同时与引擎对战(每个玩家自己的游戏),我是否需要为每个玩家都拥有一个引擎实例?我知道引擎在忙于一名玩家时,它无法处理另一名玩家的移动,但是除此之外,我在这里看不到任何问题,我只需要在引擎准备就绪时从一个选定的玩家发送位置,并暂时阻止其他玩家?再说一次,ucinewgame
有事要做吗?
答案 0 :(得分:0)
好的,根据源代码,ucinewgame
似乎只做一件事-它清除了训练数据。