Questions tagged «programming»

与国际象棋有关的书写软件各方面的问题。

4
创建国际象棋引擎,机器学习与传统引擎?
我既是国际象棋玩家,也是计算机程序员。我会说下棋和编程是我花费最多时间做的两件事。自然,我想创建自己的引擎,并最终创建Lichess机器人。 继去年AlphaZero对Stockfish表现出色之后,我正在考虑是否应该使用机器学习(某种类型的神经网络,可能使用Tensorflow)或传统的,硬编码的启发式算法来创建此引擎。 与其他种类的硬编码相比,我对神经网络不太熟悉。不过,对于我来说,这可能还是学习神经网络的一种好方法。 我正在考虑的另一件事是,使用哪种语言对引擎进行编码是否重要。我知道许多国际象棋引擎都使用C ++,这是我以前从未使用过的。我使用了其他基于C的语言,它们执行许多相同的操作,但语法大多不同。我最熟悉Swift和Javascript,但也熟悉Python,并认为它可以帮到我。 因此,就创建尽可能强大的国际象棋引擎而言,我应该使用神经网络还是硬编码?

5
自深蓝色以来,引擎如何改进?
自1997年Deep Blue击败Kasparov以来,计算机国际象棋引擎已经变得更好。 算法是不是变得更好了,还是因为主要由于更快的硬件等而使相同的算法运行得更快而带来的改进? 如果是前者,这些算法改进是否公开? 如果是这样,有哪些改进?我在哪里可以读到它们?

3
开源国际象棋或PGN查看库
是否有人熟悉任何语言的开源国际象棋库,并且可以执行以下任何操作: 解析PGN和/或FEN 根据位置计算有效的棋步 处理整个国际象棋游戏 编辑: 抱歉,我应该更清楚。我不是在寻找开源软件,而是在寻找开源编程库。

3
国际象棋引擎编程的替代方法
据我了解,大致来说,国际象棋引擎的工作原理是: 计算所有可能的变化(游戏树)直至一定深度 根据一些标准(材料,零件活动...)评估最终位置 基于此评估,决定采取最佳措施 我完全理解,要拥有一个高效的引擎,可以采用一些方法来修剪某些线条,限制深度等。但这不是我的问题。 问题是:是否有其他尝试对不遵循此方案的(不一定是强的,但也不是随机的)象棋引擎进行编程?

1
我可以向FIDE国际象棋应用程序添加哪些功能?(进行2/25的编辑)
编辑:大多数应用程序已完成。现在我需要完成的是FIDE仲裁器的实现,一个动态3D绘图(现在它仅绘制3个变量,没有输入会影响它),添加更多FIDE数据(基于月份)并可能包括USCF国际象棋数据(我拥有所有州的最新数据集)。 我对此帖子进行了3次调整。 1.包含一个动态时间序列图,使您一次可以看到多个玩家:这非常耗时! 2.包括叠加的直方图/密度曲线。 3.包括3D散点图 4,改善应用程序的布局 联谊会申请 除了交互式国际象棋棋盘本身(本身就是另一只动物)之外,我还可以向此应用程序添加哪些内容,以在对汇总的FIDE国际象棋统计数据进行可视化和汇总时进行改进?我还计划为合并的历史数据添加时间序列图和运动图。 完成后,我会将源代码放到github / mediafire上,供对此编程方面感兴趣的人使用。我最终还将找到一个托管此应用程序的地方,以便您可以在闲暇时使用。 这是应用程序本身的图片。左侧具有影响右侧输出的过滤器。 这是我添加的一些功能图片。 下图的关键: 第一张图是一个互动式地图,输出每个国家/地区的FIDE等级玩家数量并将其绘制在地图上。 第二张图是描述FIDE等级分布的归一化直方图或密度曲线。 与地图类似,这是每个国家/地区的人数图表 地球是地图,但是地图更具吸引力。 理想情况下,我将能够包括2D / 3D时间序列图,不确定在给出数据集结构的情况下是否有可能。我将在这里绘制国际棋联棋局或个人棋手的综合棋局统计数据。 谷歌动态图表,类似于时间序列图,但更具交互性和视觉吸引力。与时间序列图一样,我将在此处绘制FIDE国际象棋人口或单个玩家的汇总象棋统计数据。 3个变量的散点图 我还可以添加其他进一步的可视FIDE国际象棋数据吗?同样,提出一些建议以进一步完善我所拥有的东西也是很好的。

1
如何将PGN转换为长代数符号(在python中)?
我想读取一个PGN文件,然后前进到某个特定的移动编号,并将其提供给UCI引擎。事实证明,引擎使用长代数表示法工作,而PGN是短代数表示法。进行转换的简便方法是什么?即从SAN到LAN。 我意识到生成长代数符号需要了解棋盘状态和下棋规则,所以我不想再写一遍!当然,这样的东西一定已经存在-命令行程序或模块(最好在python中)。
12 pgn  programming 

5
带有API的国际象棋引擎
我正在寻找一种提供标准API的象棋引擎,我可以将其与某些高级编程语言(例如C#或python)一起使用。我浏览了领导者列表(Houdini,Komodo,Stockfish和Rybka),但找不到任何迹象表明这些引擎提供了API(这让我感到惊讶,并暗示我缺少了一些东西)。 为了更加明确,我需要使用以下API: 能够将特定的游戏加载到引擎中 能够评估游戏的位置 能够采取行动 那么,有谁知道一个为其功能提供清晰API的引擎?


3
是否有USCF API?
不久前,有一个由NM乔纳森·希尔顿(NM Jonathan Hilton)的父亲制造的网站,该网站对球员的USCF评级历史进行了一些分析。 我认为这是一个非常不错的网站,但它消失了。仍然有一些类似的工具在浮动。我想知道是否存在某种USCF API,或者该如何捕获这些数据。
10 programming  uscf 

3
单元测试棋盘表示
所以这是一个离群的问题。 我实际上是从头开始编写一个象棋库。您可以在此处找到许多代码,以用于GUI和/或引擎。(游戏是国际象棋,但出于这个问题的目的,这并不重要。) 我目前正在编写单元测试,以验证我的功能是否按预期工作。我想知道是否存在某种类型的库或数据库,这些库或库可以建议我测试使用并根据其进行工作的建议职位,并将其分类为将军,僵局,支票,法律,非法等。 tl; dr我正在寻找位置列表以对我的代码进行单元测试。 您可以在这里找到我当前的测试,我每隔几天就会添加一次。但是,在调试代码之前,我想确保测试是详尽的。(目前有一半失败)。 编辑:澄清:我不是在寻找引擎(“最好的举动”)测试。我正在寻找董事会代表(“此职位是我的职位”)测试。我已经为引擎测试排队了一些难题。

1
查找位板的魔术数字
我正在编写C ++国际象棋引擎,并且正在寻找Little-Endian Rank-File Mapping位板的幻数,以生成滑动件的移动。 竞争对手的国际象棋网站给出了魔术数字,但没有给出相同的棋盘映射。 国际象棋编程维基提供了迄今为止最好的一些魔术数字,但并不详尽。 最后,我正在寻找四件事: 每个正方形的占用口罩 每个方块的幻数 每个方块的魔幻转变 移动每个正方形的数据库数组 因此,我可以使用以下代码来查找Rook在C3上的移动(例如): bbBlockers = bbAllPieces & occupancyMaskRook[C3] databaseIndex = (int)((bbBlockers * magicNumberRook[C3]) >> rookMagicShifts[C3]) bbMoveSquares = magicMovesRook[C3][databaseIndex] & ~bbFriendlyPieces
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.