Я разместил вопрос на Github , и обнаружил, что нашел там более элегантное решение. Это было следующее:
>>> import chess
>>> board = chess.Board()
>>> [board.piece_type_at(sq) for sq in chess.SQUARES] # Get Type of piece
[4, 2, 3, 5, 6, 3, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, ...]
Обратите внимание, что вышеприведенная версия не содержит негативов, поэтому вот улучшенная версия:
def convert_to_int(board):
l = [None] * 64
for sq in chess.scan_reversed(board.occupied_co[chess.WHITE]): # Check if white
l[sq] = board.piece_type_at(sq)
for sq in chess.scan_reversed(board.occupied_co[chess.BLACK]): # Check if black
l[sq] = -board.piece_type_at(sq)
return [0 if v is None else v for v in l]
piece_type_list(chess.Board())
"""
Outpus:
[4, 2, 3, 5, 6, 3, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, None, None, None, None, None, None, None, None, None, None, None, None,
None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None,
-1, -1, -1, -1, -1, -1, -1, -1, -4, -2, -3, -5, -6, -3, -2, -4]
"""