Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import chess.pgn
- PGN_PATH = 'test.pgn'
- NODES = 800
- def average_time_per_move(pgn_file):
- pgn = open(pgn_file, encoding="utf-8-sig")
- stats = {} #format {engine_name : [total_time, nr_of_samples]}
- while True:
- game = chess.pgn.read_game(pgn)
- if game is None:
- break
- white_engine = game.headers['White']
- black_engine = game.headers['Black']
- engines = [white_engine, black_engine]
- for engine in engines:
- if engine not in stats.keys():
- stats[engine] = [0.0, 0]
- node = game
- ply_nr = 0
- while not node.is_end():
- next_node = node.variations[0]
- engine = engines[ply_nr % 2]
- comment = node.comment
- if comment != 'book' and comment != '':
- used_time = float(comment.split(' ')[1][:-1])
- stats[engine][0] += used_time
- stats[engine][1] += 1
- node = next_node
- ply_nr += 1
- #calculate average time used for move
- stats_final = {eng: stats[eng][0]/(stats[eng][1] if stats[eng][1]!= 0 else 1) for eng in stats.keys()}
- return(stats_final)
- stats = average_time_per_move(PGN_PATH)
- nodes_per_move = 800
- for engine in stats.keys():
- print(engine, NODES/stats[engine])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement