Python 使用chess.uci更改stockfish技能等级

Python 使用chess.uci更改stockfish技能等级,python,chess,uci,Python,Chess,Uci,我们的国际象棋游戏项目使用了chess.uci和stockfish引擎。我们使用engine=chess.uci.popen\u引擎(“/some\u address/stockfish”)启动引擎。然而,我想知道是否有办法改变这个引擎的技能水平。我是否可以通过将参数传递到engine.go()?我看到了移动时间和深度等选项。一些堆栈溢出帖子说stockfish中有一个“技能等级”选项,但我没有找到。我想要达到的是使引擎的技能与玩家的技能相匹配。谢谢 你读过报纸了吗?都在里面 以下是文档中关于如

我们的国际象棋游戏项目使用了
chess.uci
和stockfish引擎。我们使用
engine=chess.uci.popen\u引擎(“/some\u address/stockfish”)
启动引擎。然而,我想知道是否有办法改变这个引擎的技能水平。我是否可以通过将参数传递到
engine.go()
?我看到了移动时间和深度等选项。一些堆栈溢出帖子说stockfish中有一个“技能等级”选项,但我没有找到。我想要达到的是使引擎的技能与玩家的技能相匹配。谢谢

你读过报纸了吗?都在里面

以下是文档中关于如何在给定固定搜索时间的情况下限制级别的示例:

玩 示例:让Stockfish自作主张,每次移动100毫秒

import chess导入chess.engine
engine=chess.engine.SimpleEngine.popen_uci(“/usr/bin/stockfish”)
棋盘=国际象棋。棋盘()而不是棋盘。游戏结束了吗()
结果=引擎。游戏(棋盘、国际象棋。引擎。限制(时间=0.1))
板。推(结果。移动)
引擎退出

您可以使用传入popen呼叫的
选项
字典。参数的名称因您使用的引擎而异,但它可能只是您想要更改以控制技能水平的深度。您的意思是我可以将字典传递给popen call吗?就像我使用stockfish一样,我传入
{“技能等级”:0}
?我相信这就是你的意思。或者我还看到在chess.uci中有一个名为
setoption()
的函数,可以吗?我已经阅读了另一个函数,其中包括我问题中发布的函数。不确定这些文档之间的关系。如果我们使用时间或深度来限制发动机液位,有没有办法让我知道发动机的额定值?我想把引擎技能限制在一个特定的ELO等级范围内。