问题标签 [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 投票
31 回答
53734 浏览

algorithm - 程序员之谜:在整个游戏中编码棋盘状态

严格来说不是一个问题,更像是一个谜......

多年来,我参与了一些新员工的技术面试。除了问标准的“你知道 X 技术吗”问题之外,我还试图了解他们如何处理问题。通常,我会在面试前一天通过电子邮件将问题发送给他们,并期望他们在第二天提出解决方案。

通常结果会非常有趣——错误但有趣——如果他们能解释为什么他们采取特定方法,他们仍然会得到我的推荐。

所以我想我会向 Stack Overflow 的观众提出我的一个问题。

问题:您能想到的对国际象棋游戏(或其子集)状态进行编码的最节省空间的方式是什么?也就是说,给定一个棋盘,棋子是合法排列的,对这个初始状态和玩家在游戏中采取的所有后续合法移动进行编码。

答案不需要代码,只需描述您将使用的算法。

编辑:正如其中一位海报指出的那样,我没有考虑移动之间的时间间隔。也可以随意将其作为可选的额外内容:)

EDIT2:只是为了进一步澄清......请记住,编码器/解码器是规则感知的。唯一真正需要存储的是玩家的选择 - 可以假设编码器/解码器知道其他任何内容。

EDIT3:在这里很难选出赢家:) 很多很棒的答案!

0 投票
15 回答
7775 浏览

chess - 防止在线棋牌游戏作弊?

在许多在线国际象棋大厅中,我看到了“引擎”的实例,作弊者会在主游戏窗口的同时打开一个国际象棋程序。然后他会设置它,以便将对手的动作转发到计算机,然后他将复制计算机的动作,直到他(几乎总是)获胜。

作为游戏开发者和版主,遇到这种情况该怎么办?

0 投票
5 回答
9641 浏览

wpf - WPF中的棋盘

多年来我一直使用 Winforms 开发,现在我想切换到 WPF 并制作棋盘。不幸的是,我不知道从哪里开始。使用 WPF 让我非常不确定,我又觉得自己像个菜鸟。有人可以概述一个基本设计吗?我想我会从一个 8x8 网格开始,并使用矩形作为正方形,图像作为碎片。进而?我错过了什么吗?

编辑:这只是关于用户界面;幕后发生的事情没有问题。

0 投票
4 回答
59252 浏览

algorithm - 目前已知的计算机国际象棋最佳算法?

我只是想学习算法的名称..谢谢

0 投票
4 回答
2647 浏览

c# - C#极小极大树实现

我正在尝试编写 C# Chess AI。

在那一刻,我必须建立我的 minmax 树。我尝试使用递归,但我的递归函数必须为每个节点调用自己大约 1 000 000 次。在大约... 60 000 次调用后,我得到了 Stack Overflow 异常。

0 投票
3 回答
20063 浏览

javascript - JavaScript 中的国际象棋游戏

有没有纯用 JavaScript 编写的国际象棋游戏 API?没有闪光灯!有人知道国际象棋游戏中使用的算法(一般)吗?

0 投票
4 回答
2091 浏览

java - Java 枚举的按位运算;回复:国际象棋EG

如果我在 C 中保留一个表示棋盘的数组,我可能会用大致如下所示的枚举项填充它:

因此允许看起来像这样的逻辑:

在 Java 中,我只是发现不支持对枚举的按位 & 操作,此外,相当棒的 EnumSet 并不容易应用,因为一块不能是黑白的,车不能是国王的。

所以我的想法是这样的:

显然我只需要一个或另一个(and 操作,或初始化值)。如果我可以在它自己的定义中使用枚举类型,那肯定会很棒,但我不能。所以像这样的行:

出局。

我的问题是什么?有没有更好的方法,我错过了。我也可以将序数的 int 解析为枚举定义的值,避免整个 case 语句吗?

0 投票
4 回答
2382 浏览

c# - 如何开发多人国际象棋?

我想用 c# 开发一个多人国际象棋,但我不知道如何用 c# 实现国际象棋的限制规则,老实说,我一生中从来没有做过一点游戏编程,所以我不知道如何在这个领域工作。

有没有简单的国际象棋程序源代码示例?坦率地说,我没有成功搜索国际象棋源代码或如何在国际象棋中实现移动规则。

所以如果你认为你可以帮助我,那将不胜感激。

问候。

0 投票
2 回答
1892 浏览

performance - 人工智能国际象棋有效走法

我正在尝试编写 AI Chess,但遇到了问题。我已经准备好棋子移动规则,并且我正在尝试删除无效的移动(让国王检查等)。我写了这样的东西:

但是,我使用的是 minimax + alpha beta 并且验证使我的搜索速度非常慢。

0 投票
17 回答
90531 浏览

chess - 棋盘上骑士的最短路径

我一直在为即将举行的编程比赛练习,我偶然发现了一个让我完全困惑的问题。然而,我觉得这是一个我现在应该学习的概念,而不是指望它永远不会出现。

基本上,它处理棋盘上的骑士棋子。您有两个输入:起始位置和结束位置。目标是计算并打印骑士到达目标位置的最短路径。

我从来没有处理过最短路径的事情,我什至不知道从哪里开始。我采用什么逻辑来解决这个问题?

PS如果有任何相关性,他们希望您通过允许骑士移动到由骑士可以进行的(可能)八个动作形成的广场的四个角落来补充骑士的正常动作,因为广场的中心是骑士的位置。