所以我有两个fens。一张在搬家前,一张在搬家后。我如何通过比较这两个分并以uci或任何其他格式返回答案来获得玩过的走法。我使用的是python-chess库,所以也许有一种方法可以通过比较两个不同的棋盘对象来获得所玩的棋子?
发布于 2021-03-28 05:33:58
我想通了!我使用了国际象棋python库生成的棋盘对象,并将这些对象解析为所玩的棋子的UCI。
nums = {1:"a", 2:"b", 3:"c", 4:"d", 5:"e", 6:"f", 7:"g", 8:"h"}
def get_uci(board1, board2, who_moved):
str_board = str(board1).split("\n")
str_board2 = str(board2).split("\n")
move = ""
flip = False
if who_moved == "w":
for i in range(8)[::-1]:
for x in range(15)[::-1]:
if str_board[i][x] != str_board2[i][x]:
if str_board[i][x] == "." and move == "":
flip = True
move+=str(nums.get(round(x/2)+1))+str(9-(i+1))
else:
for i in range(8):
for x in range(15):
if str_board[i][x] != str_board2[i][x]:
if str_board[i][x] == "." and move == "":
flip = True
move+=str(nums.get(round(x/2)+1))+str(9-(i+1))
if flip:
move = move[2]+move[3]+move[0]+move[1]
return movehttps://stackoverflow.com/questions/66770587
复制相似问题