2024-05-14 10:29:08 发布
网友
我在我的程序中使用python的象棋库Stockfish作为象棋引擎,将创建StockfishVsPlayer游戏,我希望能够让用户选择游戏的难度。我知道深度越高,象棋引擎检查的步数越多,但这就是定义其强度所需的全部吗?我可以说难度=引擎深度吗?就像在这一行,我选择深度
[...while it's the computer's turn to move...] [...] best_move = engine.go(depth=difficulty)[0] [...]
象棋引擎不仅仅是深度。在
由于我们无法在某一时刻计算出整个棋局,我们需要对棋盘的当前价值进行一些评估。这种评估越准确,算法就越好。在
同样,如果将分支检查到相同的深度,则会浪费资源。例如,在一个分支中,你免费失去了你的女王。99%的时间这将是一个死分支,任何用于进一步计算该分支的资源都将被浪费。在
最后,大多数国际象棋计算机使用数据库来进行开局和终局,这些数据库的复杂程度对计算机的能力有很大的影响。在
如果这三个因素保持不变,那么唯一的另一个主要因素就是搜索的深度。不过,我并没有在python中研究过stockfish,但是根据我的经验,构建象棋计算机的移动深度并不是一个有效的度量标准。随着游戏的进行,移动深度增加,因为需要考虑的因素更少。通常我很难调整计算时间。在
1。让我们说清楚:
对于Python象棋,您不需要Stockfish,反之亦然。因此,你写的:
... If there was an option to select the level it should mention ...
不正确。Python Chess的文档不应该有任何特定于Stockfish UCI Chess设置的内容。在
2。在哪里可以找到Stockfish UCI设置?
官方网页:
有你想要的。如果需要更多详细信息,可以查看源代码:
3。回答您的问题
深度是决定国际象棋实力的重要因素之一。其他可能性包括:
例如,有Cerebellum书库的Stockfish要比没有的强大。SyzyyTableBase也提高了游戏强度。在
Stockfish速度很快,但在关闭位置它不是最好的引擎。最近有一篇关于科莫多和Stockfish平仓的帖子:
Stockfish中有一个Skill Level参数(在上面的链接中)。如果你想了解它的工作原理,请查看我的帖子:
Skill Level
一般来说,是的。这是一个很好的论文排名深度与埃洛评级。 http://web.ist.utl.pt/diogo.ferreira/papers/ferreira13impact.pdf
但是,特别是对鳕鱼来说,答案是否定的。如果你玩了一个鳕鱼游戏,把它的技能等级设置为0,这大约是1200分,你应该很容易击败它。但是,如果你看一下它搜索的深度,它通常会搜索到深度20,这应该更接近2500等级。在
所以这取决于它是如何编程的。在
象棋引擎不仅仅是深度。在
由于我们无法在某一时刻计算出整个棋局,我们需要对棋盘的当前价值进行一些评估。这种评估越准确,算法就越好。在
同样,如果将分支检查到相同的深度,则会浪费资源。例如,在一个分支中,你免费失去了你的女王。99%的时间这将是一个死分支,任何用于进一步计算该分支的资源都将被浪费。在
最后,大多数国际象棋计算机使用数据库来进行开局和终局,这些数据库的复杂程度对计算机的能力有很大的影响。在
如果这三个因素保持不变,那么唯一的另一个主要因素就是搜索的深度。不过,我并没有在python中研究过stockfish,但是根据我的经验,构建象棋计算机的移动深度并不是一个有效的度量标准。随着游戏的进行,移动深度增加,因为需要考虑的因素更少。通常我很难调整计算时间。在
1。让我们说清楚:
对于Python象棋,您不需要Stockfish,反之亦然。因此,你写的:
不正确。Python Chess的文档不应该有任何特定于Stockfish UCI Chess设置的内容。在
2。在哪里可以找到Stockfish UCI设置?
官方网页:
有你想要的。如果需要更多详细信息,可以查看源代码:
3。回答您的问题
深度是决定国际象棋实力的重要因素之一。其他可能性包括:
例如,有Cerebellum书库的Stockfish要比没有的强大。SyzyyTableBase也提高了游戏强度。在
Stockfish速度很快,但在关闭位置它不是最好的引擎。最近有一篇关于科莫多和Stockfish平仓的帖子:
Stockfish中有一个
Skill Level
参数(在上面的链接中)。如果你想了解它的工作原理,请查看我的帖子:一般来说,是的。这是一个很好的论文排名深度与埃洛评级。 http://web.ist.utl.pt/diogo.ferreira/papers/ferreira13impact.pdf
但是,特别是对鳕鱼来说,答案是否定的。如果你玩了一个鳕鱼游戏,把它的技能等级设置为0,这大约是1200分,你应该很容易击败它。但是,如果你看一下它搜索的深度,它通常会搜索到深度20,这应该更接近2500等级。在
所以这取决于它是如何编程的。在
相关问题 更多 >
编程相关推荐