python - 从库 python-chess on line 命令可视化完整的棋盘

标签 python jupyter-notebook python-chess

我正在基于此库进行国际象棋游戏:
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 命令上运行命令“board”,则不会发生任何事情。似乎 line 命令不支持使用“board”(来自他们的网站:Supports Python 3.6+ and PyPy3.IPython/Jupyter Notebook integration)。

有没有解决的办法?换句话说,我是否仍然可以在命令行上运行“board”并可视化漂亮的国际象棋棋盘?

最佳答案

如果您只想以图形方式显示位置,您可以安装和使用 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
我看到你很久以前发布了这个问题。尽管如此,我希望你觉得这很有用。

关于python - 从库 python-chess on line 命令可视化完整的棋盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60500533/

相关文章:

python - 如何在Python国际象棋中获得白棋的获胜机会

python - 在 pygame 中显示的缓冲区在 tkinter 中不显示

python - 当你有一个名为 max 的变量时使用 Python 的 max 函数?

python - 在另一个函数中调用函数

python - 无法在 Catalina 上正确安装 Python 3/Jupyter

plot - Bokeh - Runserve.py 失败

python - 使用 pandas groupby 查找唯一的列组合并保存为 df

python - 在 ubuntu 14.04 上安装 Pillow 时出错

python - 如何在 Jupyter Notebook 中表示地理 map 上的标量变量