我有以下RNBK1B1R/PPPPQPPP/5N2/3pP3/4p1p1/2n2n2/ppp2p1p/r1bkqb1r b由影像識別技術生成的fen 。這個fen基于翻轉板,因此黑色塊位于底部。當我檢查 時legal_moves,似乎我的棋子的軌跡是向后的。有什么辦法可以控制我的棋子的方向嗎?
這是董事會的形象以及合法的舉動 -

列印所有合法動作的快速片段 -
import chess
def legalMoves(board):
legMovesDict = {}
for lm in board.legal_moves:
src, des = lm.from_square, lm.to_square
src, des = chess.square_name(src).upper(), chess.square_name(des).upper()
if src not in legMovesDict.keys():
legMovesDict[src] = [des]
else:
if des not in legMovesDict[src]:
legMovesDict[src].append(des)
# print(src, des)
return legMovesDict
board = chess.Board('RNBK1B1R/PPPPQPPP/5N2/3pP3/4p1p1/2n2n2/ppp2p1p/r1bkqb1r b')
print(legalMoves(board))
uj5u.com熱心網友回復:
根據這個答案,您可以反轉板的 FEN 符號的第一個欄位以糾正反轉。
所以這:
fen = 'RNBK1B1R/PPPPQPPP/5N2/3pP3/4p1p1/2n2n2/ppp2p1p/r1bkqb1r b'
fields = fen.split(' ')
fields[0] = fields[0][::-1]
flipped_fen = ' '.join(fields)
board = chess.Board(flipped_fen)
print(legalMoves(board))
將產生所需的輸出。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/400098.html
下一篇:如何獲取此可迭代列舉(results.pose_landmarks.landmark)的特定值之一(具有特定索引)?
