gpt4 book ai didi

python - 在 python-chess 后台运行 stockfish 进行无限分析

转载 作者:太空宇宙 更新时间:2023-11-03 20:04:57 26 4
gpt4 key购买 nike

我编写了一个具有非常漂亮的 GUI 的国际象棋程序 (PyQt5)。当我输入一个 Action 时,它会对其进行分析并更新棋盘的 SVG 表示形式 - 这要归功于出色的 python-chess 模块。现在一切正常。但是,我想做的是让引擎在后台工作并无限分析棋盘,让我输入新的 Action 。这是一个简单的代码示例:

import asyncio
import chess
import chess.engine
board = chess.Board()

async def analyse():
transport, engine = await chess.engine.popen_uci("./stockfish-10-64")
board = chess.Board()
info = await engine.analyse(board, chess.engine.Limit(time=2))
print(info["score"])
await engine.quit()
return(info)

async def get_input():
a = input("enter move in SAN format")
board.push_san(a)
print(board)
xx = await analyse()
print(xx)

while(True):
asyncio.run(get_input())

在此示例中,在分析完成之前我无法输入新的着法。 (注:原设计中的 Action 都是在PyQt5的“lineedit”小部件中输入的,不用担心异步终端输入的困难)

谢谢

最佳答案

您可以使用engine.play的“ponder”属性,它允许在后台进行分析。现在,您可以将 2 秒的搜索分成多个 block ,并能够在中间输入移动以获得相似的搜索质量。

关于python - 在 python-chess 后台运行 stockfish 进行无限分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59019206/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com