问题标签 [python-chess]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
164 浏览

python - python 国际象棋模块在google colab上无法正常工作

我在谷歌 colab 笔记本中使用 python 国际象棋模块。具体来说,我正在运行与此模块相关的三个命令:

  • chess.pgn.read_game(pgn_moves).mainline_moves()
  • chess.pgn.read_game(pgn_sides).headers["White"]
  • chess.pgn.read_game(pgn_variant).headers["Variant"]

而 chess.pgn.read_game.headers 就像一个魅力,第一个命令抛出一个 AttributeError: 'Game' object has no attribute 'mainline_moves'。奇怪的是,我的脚本在本地运行时运行良好(我在 conda python 3.8.10 环境中使用 Spyder 5)。

stackoverflow 上出现此类错误的其他问题似乎与名为 chess.py 的用户文件有关,因此产生了命名问题。但是,在我看来,这似乎不太可能发生在谷歌 colab 笔记本中......

有关我在国际象棋环境中解决有关 GAN 的烦人(尚未解决的问题)的更多信息,请查看如何在 tensorflow (keras) 中使用 GPU 和 CPU?并且TF 模型在切换到 GPU 后不再预测

我的代码:

0 投票
2 回答
1676 浏览

python - 我从哪里开始用python制作的国际象棋游戏(带有GUI)

我不是要求特定代码,而是一般结构以及如何将 python-chess 库与 pygame 库与允许玩家和 AI 移动的代码链接起来。

关于从哪里开始的任何提示?

0 投票
1 回答
254 浏览

python - 什么是国际象棋中的游戏状态移动评估?为什么带有python的stockfish API给了我垃圾评估

我正在分析一个国际象棋游戏 PGN 文件。我使用 stockfish 13 API 来执行游戏动作分析,但是引擎正在计算一些垃圾评估分数。对于 e2e4,同一游戏的评价接近 0。但是我使用 python chess 和 stockfish 国际象棋引擎的 python 代码的输出得到了 -3、+111 的评估。为什么是这样?怎么做才对?

PGN 文件:

代码:

评估输出:

0 投票
1 回答
76 浏览

python - 在国际象棋代码中找不到错误。当一块被移回时,它不会更新位置

我正在用python下棋。一切正常,我将动作作为索引列表,但我决定改用一个类,因为我认为这样会更好。但是,现在获取所有合法移动的功能似乎不起作用,我发现这是因为出于某种原因它认为它可以在起跑板上将棋子从 a4 移动到 a5,我认为这可能是因为在检查 a2 到 a4 后它不会将位置更改回正常位置,而是将它移动到由列表列表组成的板上但是我找不到原因。该错误是由第 379-387 行中的代码引起的,如果它使您受到检查,它会阻止您采取行动,因为当我将其注释掉时,没有错误。我一直在寻找几个小时,所以如果有人可以提供帮助,那将不胜感激。

异常.py

国际象棋.py

0 投票
2 回答
135 浏览

chess - 将 pgn 数据库转换为 pandas 数据框

嗨!

使用 chess.pgn 将国际象棋数据库转换为数据框,要从数据库中读取第 n 个游戏,我需要先读取所有以前的游戏吗?我不能直接跳到游戏n?如果我想将处理分布在一个有 10^8 场比赛的数据库中,我无法在第 9e7 场比赛中开始阅读?

0 投票
1 回答
82 浏览

python - 皇后移动功能不返回正确的移动数量

这是我计算女王对角线所有可能移动的函数:

参数是:

  • n板尺寸,即n=8表示它是 8x8 板。
  • r_q皇后区,
  • c_q女王专栏,
  • obs位于女王对角线上的所有障碍物。

有时它不能提供正确数量的可能移动。

我缺少什么,如何修复或找到更好的此功能实现?

棋盘

0 投票
1 回答
72 浏览

python - 如何使用 python-chess 库对主线进行切片和打印?

有一种方法可以像我们在 Python 上对列表进行切片一样对主线进行切片?例如:

  • mainline[start:stop] # 将 start 移动到 stop-1
  • mainline[start:] # 将 start 移动到主线的其余部分
  • mainline[:stop] # 从头开始​​移动到 stop-1

或者

  • mainline[start:stop:step] # 从不超过 stop 开始,逐步。

这个想法是,有main_sicilian对象:

我想拥有:

此外,通过定义它将在哪里完成。例如,直到白方第三步:

我尝试了文档,但我发现它很难用于 Python 初学者。

0 投票
1 回答
96 浏览

python - 如何让 python-chess SVG 渲染在 Google Colab 中工作?

我正在尝试从python-chess SVG 渲染中获取此代码示例。

当我运行代码时,我得到以下 HTML 输出,但没有得到白车的图像。

0 投票
1 回答
63 浏览

python - AttributeError: module 'chess' has no attribute 'Board' 棋盘错误

我在 python 下国际象棋我有这个错误

这是我的代码:

完整错误:

0 投票
3 回答
117 浏览

python - 如何用 python 操作这个国际象棋符号?

我正在尝试在 python 中使用一些与国际象棋相关的库(例如 chessnut 和 chess),它们使用以下符号

r1bqkb1r/pppp1Qpp/2n2n2/4p3/2B1P3/8/PPPP1PPP/RNB1K1NR b KQkq - 0 4

我已经搜索过它并没有找到任何东西。我该如何操作它以及如何将标准代数符号(例如“d4 Nc6 e4 e5 f4 f6 dxe5 fxe5”)转换为这个新符号?