Когда я попробовал этот код в своем основном проекте, чтобы получить бесконечный анализ в моем шахматном графическом графике (я хотел, чтобы двигатель бесконечно думал о положении и дал свои данные (оценка, лучший ход и т. Д.), И без глубины или ограничения по времени, когда я проверяю время анализа двигателя (который должен идти вверх по мере того, как он работает на индивидуальный Дайте мне странные времена, как это продолжается. How can I make the time go up only ( Make infinite analysis with engine ) , and for who is asking , I use threading so that I run the infinite analysis WITH the app (GUI) itself, as if if it used normally this line will be infinitely long and won't run rest of code
import queue
import time
import chess.engine
import threading
import chess
board = chess.Board()
info_queue = queue.Queue()
engine = chess.engine.SimpleEngine.popen_uci("C:/Program Files/ChessX/data/engines/stockfish/stockfish-windows-x86-64.exe")
multipv_dict = []
def test():
global board
global info_queue
global multipv_dict
global engine
with engine.analysis(board, chess.engine.Limit(time=None), multipv=1) as analysis:
for info in analysis:
try:
if "multipv" in info and "pv" in info:
multipv_dict.append(info) # Save the info
# If we got all PVs we asked for
if len(multipv_dict) == 1:
#
with info_queue.mutex:
info_queue.queue.clear()
#
info_queue.put(multipv_dict)
multipv_dict = []
except chess.engine.EngineTerminatedError:break
while True:
tg = threading.Thread(target=test)
tg.start()
time.sleep(2) # Wait for the thread to start
if not info_queue.empty():
info_list = info_queue.get() # this is the [info_dict, ...]
# Since you requested multipv=1, you know info_list has exactly one item
info = info_list[0] # the InfoDict
# 2) Pull out the ‘time’ field
elapsed = info.get("time")
print(f"Engine thinking time: {elapsed:.3f} seconds")
< /code>
Engine thinking time: 1.970 seconds
Engine thinking time: 1.532 seconds
Engine thinking time: 1.980 seconds
Engine thinking time: 1.861 seconds
Engine thinking time: 1.765 seconds
Engine thinking time: 1.866 seconds
Engine thinking time: 1.499 seconds
Engine thinking time: 0.742 seconds
< /code>
and for who is wondering for analysis itself
[{'depth': 18, 'seldepth': 24, 'multipv': 1, 'score': PovScore(Cp(+28), WHITE), 'nodes': 278301, 'nps': 212281, 'hashfull': 108, 'tbhits': 0, 'time': 1.311, 'pv': [Move.from_uci('e2e4'), Move.from_uci('e7e5'), Move.from_uci('g1f3'), Move.from_uci('g8f6'), Move.from_uci('f3e5'), Move.from_uci('f6e4'), Move.from_uci('d2d4'), Move.from_uci('d7d5'), Move.from_uci('f1d3'), Move.from_uci('f8d6'), Move.from_uci('b1d2'), Move.from_uci('d8h4'), Move.from_uci('d1f3'), Move.from_uci('e4f6')]}]
[{'depth': 20, 'seldepth': 30, 'multipv': 1, 'score': PovScore(Cp(+26), WHITE), 'nodes': 252508, 'nps': 232940, 'hashfull': 81, 'tbhits': 0, 'time': 1.084, 'pv': [Move.from_uci('e2e4'), Move.from_uci('e7e5'), Move.from_uci('g1f3'), Move.from_uci('b8c6'), Move.from_uci('d2d4'), Move.from_uci('e5d4'), Move.from_uci('f3d4'), Move.from_uci('g8f6'), Move.from_uci('d4c6'), Move.from_uci('b7c6'), Move.from_uci('f1d3'), Move.from_uci('d7d5'), Move.from_uci('e4e5'), Move.from_uci('f6d7'), Move.from_uci('e1g1'), Move.from_uci('d7c5'), Move.from_uci('f2f4'), Move.from_uci('c5d3'), Move.from_uci('c2d3'), Move.from_uci('c8f5'), Move.from_uci('g2g4'), Move.from_uci('f5c8'), Move.from_uci('f4f5'), Move.from_uci('d8h4')]}]
[{'depth': 24, 'seldepth': 27, 'multipv': 1, 'score': PovScore(Cp(+28), WHITE), 'nodes': 443589, 'nps': 249067, 'hashfull': 164, 'tbhits': 0, 'time': 1.781, 'pv': [Move.from_uci('e2e4'), Move.from_uci('e7e5'), Move.from_uci('g1f3'), Move.from_uci('b8c6'), Move.from_uci('f1b5'), Move.from_uci('a7a6'), Move.from_uci('b5a4'), Move.from_uci('g8f6'), Move.from_uci('e1g1'), Move.from_uci('f6e4'), Move.from_uci('d2d4'), Move.from_uci('b7b5'), Move.from_uci('a4b3'), Move.from_uci('d7d5'), Move.from_uci('d4e5'), Move.from_uci('c8e6'), Move.from_uci('c2c3'), Move.from_uci('f8c5'), Move.from_uci('b1d2'), Move.from_uci('e8g8'), Move.from_uci('b3c2'), Move.from_uci('f7f5'), Move.from_uci('e5f6'), Move.from_uci('e4f6'), Move.from_uci('d2b3'), Move.from_uci('c5b6')]}]
[{'depth': 22, 'seldepth': 32, 'multipv': 1, 'score': PovScore(Cp(+34), WHITE), 'nodes': 526291, 'nps': 270031, 'hashfull': 198, 'tbhits': 0, 'time': 1.949, 'pv': [Move.from_uci('e2e4'), Move.from_uci('e7e5'), Move.from_uci('g1f3'), Move.from_uci('b8c6'), Move.from_uci('f1b5'), Move.from_uci('a7a6'), Move.from_uci('b5a4'), Move.from_uci('g8f6'), Move.from_uci('e1g1'), Move.from_uci('b7b5'), Move.from_uci('a4b3'), Move.from_uci('f6e4'), Move.from_uci('d2d4'), Move.from_uci('d7d5'), Move.from_uci('d4e5'), Move.from_uci('c8e6'), Move.from_uci('c2c3'), Move.from_uci('f8e7'), Move.from_uci('b1d2'), Move.from_uci('e4c5'), Move.from_uci('b3c2'), Move.from_uci('d5d4'), Move.from_uci('d2b3'), Move.from_uci('c5b3'), Move.from_uci('a2b3'), Move.from_uci('d4c3')]}]
[{'depth': 20, 'seldepth': 30, 'multipv': 1, 'score': PovScore(Cp(+19), WHITE), 'nodes': 456265, 'nps': 271748, 'hashfull': 167, 'tbhits': 0, 'time': 1.679, 'pv': [Move.from_uci('e2e4'), Move.from_uci('e7e5'), Move.from_uci('g1f3'), Move.from_uci('b8c6'), Move.from_uci('f1b5'), Move.from_uci('g8f6'), Move.from_uci('d2d4'), Move.from_uci('e5d4'), Move.from_uci('e1g1'), Move.from_uci('a7a6'), Move.from_uci('b5a4'), Move.from_uci('f8e7'), Move.from_uci('f1e1'), Move.from_uci('e8g8'), Move.from_uci('e4e5'), Move.from_uci('f6e8'), Move.from_uci('h2h3'), Move.from_uci('d7d6'), Move.from_uci('a4c6'), Move.from_uci('b7c6'), Move.from_uci('f3d4'), Move.from_uci('d8d7'), Move.from_uci('e5d6'), Move.from_uci('e7d6')]}]
[{'depth': 24, 'seldepth': 36, 'multipv': 1, 'score': PovScore(Cp(+31), WHITE), 'nodes': 427789, 'nps': 303181, 'hashfull': 154, 'tbhits': 0, 'time': 1.411, 'pv': [Move.from_uci('e2e4'), Move.from_uci('e7e5'), Move.from_uci('g1f3'), Move.from_uci('b8c6'), Move.from_uci('f1b5'), Move.from_uci('g8f6'), Move.from_uci('e1g1'), Move.from_uci('f6e4'), Move.from_uci('f1e1'), Move.from_uci('e4d6'), Move.from_uci('f3e5'), Move.from_uci('f8e7'), Move.from_uci('b5f1'), Move.from_uci('c6e5'), Move.from_uci('e1e5'), Move.from_uci('e8g8'), Move.from_uci('d2d4'), Move.from_uci('e7f6'), Move.from_uci('e5e1'), Move.from_uci('f8e8'), Move.from_uci('c1f4'), Move.from_uci('e8e1'), Move.from_uci('d1e1'), Move.from_uci('f6d4')]}]
[{'depth': 25, 'seldepth': 35, 'multipv': 1, 'score': PovScore(Cp(+27), WHITE), 'nodes': 371424, 'nps': 275946, 'hashfull': 154, 'tbhits': 0, 'time': 1.346, 'pv': [Move.from_uci('e2e4'), Move.from_uci('e7e5'), Move.from_uci('g1f3'), Move.from_uci('b8c6'), Move.from_uci('f1b5'), Move.from_uci('g8f6'), Move.from_uci('e1g1'), Move.from_uci('f6e4'), Move.from_uci('f1e1'), Move.from_uci('e4d6'), Move.from_uci('f3e5'), Move.from_uci('f8e7'), Move.from_uci('b5f1'), Move.from_uci('c6e5'), Move.from_uci('e1e5'), Move.from_uci('e8g8'), Move.from_uci('d2d4'), Move.from_uci('d6e8'), Move.from_uci('d4d5'), Move.from_uci('e7c5'), Move.from_uci('e5e1'), Move.from_uci('d7d6'), Move.from_uci('b1c3'), Move.from_uci('f7f5'), Move.from_uci('c1e3'), Move.from_uci('c5e3'), Move.from_uci('e1e3'), Move.from_uci('e8f6'), Move.from_uci('e3e2'), Move.from_uci('c8d7'), Move.from_uci('a2a4'), Move.from_uci('f8e8'), Move.from_uci('a4a5')]}]
< /code>
I THINK THIS IS CAUSED BY DIFFERENCE BETWEEN analysis and analyse ,COULD ANYONE HELP ME AND EXPLAIN DIFF BETWEEN THESE two
.........................................................................................
Подробнее здесь: https://stackoverflow.com/questions/796 ... running-co