def pv_to_san(self): if(self.san_arr == None): return "" else: try: pv_san = [] board = Bitboard(self.san_arr[0]) moves = self.san_arr[1] for uci in moves: move = Move.from_uci(uci) if(move in board.pseudo_legal_moves): pv_san.append(board.san(move)) board.push(move) if(len(pv_san) > 0): s = "" white_moves = True move_no = (self.no_game_halfmoves//2)+1 if(self.no_game_halfmoves % 2 == 1): white_moves = False s += str(move_no)+". ... " move_no += 1 for san in pv_san: if(white_moves): s += " "+str(move_no)+". "+san move_no +=1 else: s += " "+san white_moves = not white_moves return s else: return "" except ValueError: return ""