3

我正在开发基于此库的国际象棋游戏: https ://pypi.org/project/python-chess/或https://github.com/niklasf/python-chess

在 Jupyter Notebook 上,如果我运行此代码:

import chess
board = chess.Board()
board

它将显示一个漂亮的棋盘(即颜色、形状、看起来像棋盘)。如果我这样跑:

import chess
board = chess.Board()
print(board)

它将以更基本的方式用字母显示板。

问题是,使用“board”命令查看漂亮板的唯一方法是使用 Jupyter Notebook。如果我尝试在 Visual Studio 或行命令上运行命令“板”,则不会发生任何事情。似乎 line 命令不支持使用“板”(来自他们的网站:支持 Python 3.6+ 和 PyPy3.IPython/Jupyter Notebook 集成)。

有没有解决的办法?换句话说,我还能在命令行上运行“棋盘”并可视化漂亮的棋盘吗?

4

2 回答 2

5

如果您只想以图形方式显示一个位置,您可以安装和使用chess-board包。我将它与您在以下示例中讨论的那个一起使用:

import chess

from chessboard import display
from time import sleep

board = chess.Board()

move_list = [
    'e4', 'e5',
    'Qh5', 'Nc6',
    'Bc4', 'Nf6',
    'Qxf7'
]

display.start(board.fen())
while not display.checkForQuit():
    if move_list:
        board.push_san(move_list.pop(0))
        display.update(board.fen())
    sleep(1)
display.terminate()

然而,当谈到灵活性和......理智时,这个包目前感觉相当缺乏。您至少必须打开包 display.py 文件并在 start() 函数的开头添加一行。否则,您将无法使用 display.update()。

def start(fen=''):
    global gameboard

我看到你很久以前发布了这个问题。尽管如此,我希望你觉得这很有用。

于 2020-09-25T20:33:39.703 回答
1

你可以使用 chess.svg

import chess.svg
board = chess.Board()
chess.svg.board(board, size=350)
于 2021-04-29T01:56:52.820 回答