【发布时间】:2021-06-01 17:06:25
【问题描述】:
所以我想知道如何将 FEN ID 转换为棋盘。
代码:
import io
def board_to_fen(board):
# Use StringIO to build string more efficiently than concatenating
with io.StringIO() as s:
for row in board:
empty = 0
for cell in row:
c = cell[0]
if c in ('w', 'b'):
if empty > 0:
s.write(str(empty))
empty = 0
s.write(cell[1].upper() if c == 'w' else cell[1].lower())
else:
empty += 1
if empty > 0:
s.write(str(empty))
s.write('/')
# Move one position back to overwrite last '/'
s.seek(s.tell() - 1)
# If you do not have the additional information choose what to put
s.write(' w KQkq - 0 1')
return s.getvalue()
board = [
['--', '--', '--', '--', '--', '--', '--', '--'],
['--', '--', '--', '--', '--', '--', '--', '--'],
['--', '--', '--', '--', '--', '--', '--', '--'],
['--', '--', '--', '--', '--', '--', '--', '--'],
['--', '--', '--', '--', '--', '--', '--', '--'],
['--', '--', '--', '--', '--', '--', '--', '--'],
['--', '--', '--', '--', '--', '--', '--', '--'],
['--', '--', '--', '--', '--', '--', '--', '--'],
]
print(board_to_fen(board))
board_to_fen(board)
所以我们有上面的棋盘,其中'--' 代表棋盘上的一个正方形,一个空白正方形。所以你可以使用这样的符号:'w' 代表白色,'b' 代表黑色。对于作品:
R:车 N:骑士 B:主教 问:皇后 K:国王 p: 典当
正如您想象的那样,您可以将 'wK' 放置在 '--' 位置以放置白王和其他棋子。
如您所知,我已经为棋盘创建了 FEN ID,但我想知道如何使用外部的 FEN 字符串在上面的空白处生成棋盘。
感谢我收到的任何帮助。如果您需要更多信息,请告诉我。
【问题讨论】: