python-chess возвращает «none», когда счет равен «-M8» - PullRequest
0 голосов
/ 16 февраля 2019

Я использую Python 3.6 с Jupyter и Anaconda.Сценарий «ход за ходом» в шахматной игре из файла PGN и возвращает счет.Это прекрасно работает.

Проблема возникает, когда возвращается счет "-M8", что означает, что черные могут дать мат в 8 ходов.

Но следующая строка:

(handler.info["score"][1].cp)

возвращает «none» вместо «-M8», как и ожидалось.

Сценарий:

import chess
import chess.uci
import chess.pgn
import sys

with open('E:\PGN Files\Fischer.pgn') as f:


    handler = chess.uci.InfoHandler()
    engine = chess.uci.popen_engine('C:\Program Files (x86)\Arena\Engines\stockfish_9_x64.exe') #give correct address of your engine here
    engine.info_handlers.append(handler)

    for number in range(10):
        game = chess.pgn.read_game(f)
        m=0
        while not game.is_end():
            m=m+1
            node = game.variations[0]
            board = game.board() 

            game = node         

            engine.position(board)

            #Set your evaluation time, in ms:
            evaltime = 5000 #so 5 seconds
            evaluation = engine.go(movetime=evaltime)

            score =(handler.info["score"][1].cp)
            print(str(score))
...