问题标签 [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.
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 后不再预测。
我的代码:
python - 我从哪里开始用python制作的国际象棋游戏(带有GUI)
我不是要求特定代码,而是一般结构以及如何将 python-chess 库与 pygame 库与允许玩家和 AI 移动的代码链接起来。
关于从哪里开始的任何提示?
python - 什么是国际象棋中的游戏状态移动评估?为什么带有python的stockfish API给了我垃圾评估
我正在分析一个国际象棋游戏 PGN 文件。我使用 stockfish 13 API 来执行游戏动作分析,但是引擎正在计算一些垃圾评估分数。对于 e2e4,同一游戏的评价接近 0。但是我使用 python chess 和 stockfish 国际象棋引擎的 python 代码的输出得到了 -3、+111 的评估。为什么是这样?怎么做才对?
PGN 文件:
代码:
评估输出:
python - 在国际象棋代码中找不到错误。当一块被移回时,它不会更新位置
我正在用python下棋。一切正常,我将动作作为索引列表,但我决定改用一个类,因为我认为这样会更好。但是,现在获取所有合法移动的功能似乎不起作用,我发现这是因为出于某种原因它认为它可以在起跑板上将棋子从 a4 移动到 a5,我认为这可能是因为在检查 a2 到 a4 后它不会将位置更改回正常位置,而是将它移动到由列表列表组成的板上但是我找不到原因。该错误是由第 379-387 行中的代码引起的,如果它使您受到检查,它会阻止您采取行动,因为当我将其注释掉时,没有错误。我一直在寻找几个小时,所以如果有人可以提供帮助,那将不胜感激。
异常.py
国际象棋.py
chess - 将 pgn 数据库转换为 pandas 数据框
嗨!
使用 chess.pgn 将国际象棋数据库转换为数据框,要从数据库中读取第 n 个游戏,我需要先读取所有以前的游戏吗?我不能直接跳到游戏n?如果我想将处理分布在一个有 10^8 场比赛的数据库中,我无法在第 9e7 场比赛中开始阅读?
python - 皇后移动功能不返回正确的移动数量
这是我计算女王对角线所有可能移动的函数:
参数是:
n
板尺寸,即n=8
表示它是 8x8 板。r_q
皇后区,c_q
女王专栏,obs
位于女王对角线上的所有障碍物。
有时它不能提供正确数量的可能移动。
我缺少什么,如何修复或找到更好的此功能实现?
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 初学者。
python - AttributeError: module 'chess' has no attribute 'Board' 棋盘错误
我在 python 下国际象棋我有这个错误
这是我的代码:
完整错误:
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”)转换为这个新符号?