问题标签 [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 回答
1700 浏览

python - python canvas在循环中创建图像

您好我最近开始学习 tkinter 并决定拿起棋盘游戏。
下面是我的代码:

上面的代码 i 是在板上添加一块(黑车),它按预期工作。
以下是辅助功能:

但是当我尝试在 for 循环的帮助下放置棋子时会出现问题。下面是代码:

它只放置最后一个棋子。

请建议/帮助我理解这个问题。
提前致谢。

0 投票
1 回答
271 浏览

python - Python-chess 打开 UCI 引擎权限错误被拒绝

我目前正在创建一个 python 脚本,它使用 python-chess 和 chess.uci 打开一个国际象棋引擎 Stockfish。但是,当我尝试打开鱼引擎时,我得到

PermissionError: [Errno 13] 权限被拒绝

所以我更多地研究了这个问题,显然,你不能直接打开目录或文件夹。但是,查看为 python-chess 打开 UCI 引擎的文档,该示例显示打开似乎是 /usr/bin 下的目录

文档在这里:https ://python-chess.readthedocs.io/en/v0.23.10/uci.html

有没有其他方法可以使用 UCI 打开引擎?我的操作系统系统是 Mac OS。

0 投票
1 回答
174 浏览

keras - 使用 CNN 下棋的 Keras (TF) 中输入数组的维度问题

我想将一个 numpy 数组输入 CNN,其中包含 2 个国际象棋位置,一个在移动之前,第二个在某个移动之后。我想训练 CNN 来估计传统国际象棋程序对这一步的评估。这些评估是 int 值。

x和的形状y是:x: (2000000, 8, 8, 2) , y: (2000000,)

型号代码:

培训完成:

它给了我以下错误:

我做错了什么?我怎样才能解决这个问题?


好的,我意识到问题与最后一层的输出形状有关:

但这是为什么呢(None, 4, 4, 1)?不应该(None, 1)吗?它是一个值为 1 的单个神经元!

0 投票
1 回答
352 浏览

python - 如何获取FEN位置的字符串

在我做之后

我怎样才能有一个带有位置的 FEN 的字符串?换句话说,如何从board位置的 FEN 中提取为字符串,输出与我所做的相同

?

0 投票
0 回答
187 浏览

python - 当分数类似于“-M8”时,python-chess 返回“none”

我将 python 3.6 与 Jupyter 和 Anaconda 一起使用。该脚本从 PGN 文件中逐个移动,并返回一个分数。这很好用。

当返回的分数是“-M8”时,问题就来了,这意味着黑棋可以在8步内将死。

但是下面一行:

按预期返回“none”而不是“-M8”。

脚本:

0 投票
4 回答
2946 浏览

python - 如何在 python-chess 中获得一块

我现在将 python-chess 用于我的国际象棋项目。我想我已经找到了通过直接定义来获取它的用法。例如chess.Board().piece_at(chess.B1),但我想通过一个变量来获得它,有什么方法可以让我获得片段类型。

例如source = 'g1',如何获取源的片段类型?

0 投票
1 回答
91 浏览

python - 鼠标点击不准确

我的应用程序是使用最新版本的 Python 3.7、PyQt5 和 python-chess 编写的。我有一个 SVG 棋盘,由 python-chess 本身制作。我的应用程序处理棋盘上的鼠标点击,突出显示点击的方块。我的精度有问题。有时会突出显示相邻的正方形。我在棋盘的左侧和顶部也有棋盘坐标,这是我的错误的根本原因。没有棋盘坐标,它可以完美运行。

如果有人有兴趣帮助我,这里是代码。

0 投票
4 回答
2338 浏览

python - 有没有办法将 python 棋盘转换为整数列表?

我正在尝试创建一个神经网络来下棋,但首先,我需要将棋盘转换为整数列表。我正在为棋盘和游戏使用python-chess模块。我目前有一个棋盘类,但找不到将其转换为列表的方法。

我曾尝试使用该chess_board.epd()方法,但它返回的格式方案难以转换。

这是我需要的代码:

现在,用.epd()我得到的方法"rnbqkbnr/pppppppp/8/8/8/5P2/PPPPP1PP/RNBQKBNR b KQkq -"

如您所见,解析和转换为整数列表非常困难,因为有/8/' 和/5P2/.

预期的输出是这样的(逐行):

[4, 2, 3, 5, 6, 3, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, ... -1, -1, -1, -1,-1, -1,-1, -1, -4, -2, -3, -5, -6, -3, -2, -4]

例如,这些可以是整数映射到 peices 的内容:

白色可以是正整数,黑色可以是负整数。

0 投票
1 回答
135 浏览

python-3.x - 为什么 python-chess 中的相同函数返回不同的结果?

我是使用 python-chess 的新手,我正在阅读官方文档。我注意到这个非常奇怪的事情,我无法理解。这是来自文档:

因此,您可以看到完全相同的功能pgn.read_game()会导致出现两个不同的游戏。我尝试使用自己的pgn文件,果然first_game == second_game导致False. 我也试过third_game = chess.pgn.read_game()了,果然给了我pgn文件中的(大概)第三场比赛。这怎么可能?如果我使用相同的函数,它不应该每次都为同一个文件返回相同的结果吗?为什么变量名很重要(我假设它确实如此),除非一夜之间改变了编程语言或某处内置了随机函数?

0 投票
0 回答
167 浏览

python - 将 chess-svg 纹理集成到 kivy 对象中

以前,我使用obj.texture参考成功地将 png 文件的字节集成到 kivy 图像中。我目前正在尝试使用chess.svg字符串执行此操作,但没有取得太大成功。MWE如下:

任何有关如何完成这项工作的见解都将不胜感激,因为这似乎是我们集体社区知识的一个空白(例如,请参阅:Display chess board from svg file in kivy python)。我使用此代码的设计目标之一是无需在本地保存任何图像文件即可完成整个集成,因此SvgWidget除非有办法在不引用文件的情况下使用它,否则可以排除 kivy。