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

java - Java programming - Chess moves (basic, no AI)

I need help in designing a Chess game. I've already started but haven't got far as I'm pretty new to Java, new to programming at all actually.

Anyway, I have my abstract class Piece and the various pieces as subclasses. I have a method movePiece, in my abstract class, which I want to define for all subclasses.

All it currently does is move the piece from one square to another. I have a Square class which can hold a Piece object, the board consists of a 64x1 Square array.

I know how pieces move, but how do I actually do the programming? I want to try to apply the MVC pattern but this is really the first time I will be using patterns.

Basically I was thinking on using Graphics2D to create a box for each Square. Then when a player clicks a piece, the squares that are available as destination after the move will be outlined in some colour. After the player clicks one of these squares, the code that I already have in my movePiece method will run.

What I want to do is override my movePiece method in each subclass of Piece. The question is, how could the code look in one of these methods? take the Pawn subclass for example.

I'm not asking for code to copy/paste, just some pointers on how to do this, eventually some sample code.

Thanks!

You wanted to see the code, very basic I know. And I will change the [64] to [8][8]. I'm trying to not make it harder then it has to be. I can probably combine Colour and Owner as an attribute and make it an enum (either BLACK or WHITE).

Sorry if the formatting isn't good.

0 投票
2 回答
2391 浏览

java - 将 JLabel 添加到 JPanel 是否会“隐藏”JPanel?

如果我在 GridLayout 中有几个 JPanel,每个都有一个 MouseAdapter,然后创建 JLabels(带文本)并添加到每个 JPanel。请注意,JLabels 没有侦听器。如果我渲染它并尝试单击 JPanel,或者最终尝试单击 JLabel,MouseAdapter 会将其注册为事件吗?

基本上,我希望 JPanel 注册事件,而 JPanel 只在 JPanel 上显示文本。此外,面板具有背景颜色。

如果 JLabel 确实“隐藏”了注册事件,我该如何解决这个问题?

0 投票
1 回答
125 浏览

console - ArrayIndexOutOfBoundsException - 为什么我仍然有这个问题?

我正在尝试使用二维数组将棋盘打印到控制台。出于测试目的,我试图简单地将板填充为“x”字符。但是,当我尝试使用以下内容填充数组时,我不断收到 ArrayIndexOutOfBounds 异常:

该错误显然发生在boardArray[i][j] = 'x';

一切似乎都井井有条,我不明白为什么这不起作用。

编辑:我得到了要填充的数组,但现在我无法正确格式化打印。内容全部打印在一行上,而不是 8x8 正方形的“x”字符。这是我现在拥有的:

0 投票
2 回答
2228 浏览

java - 为 arena gui 编写国际象棋引擎

我有兴趣为竞技场 GUI http://www.playwitharena.com实现一个国际象棋引擎。您是否知道一些关于您必须遵循的特定准则的信息,以使引擎在 Arena 中可用(即,您可以实际从 Arena 导入引擎)。

您还认为可以使用 Java 实现 Arena 国际象棋引擎还是我需要使用 C++

另外,如果您知道任何其他可以导入引擎的板 GUI,特别是如果引擎可以用 java 编写,请说出来。

0 投票
1 回答
1229 浏览

database - 寻找 Scid 的开书阅读器

我正在尝试使用开放库来实现国际象棋机器人。

我已经从 Scid 下载了一个打开的书文件 ( opening.bin ) 。

是否有可供下载的查看器实用程序?

0 投票
1 回答
1879 浏览

algorithm - 求算法解决八皇后之谜

可能重复:
C++ 中的 Dumb 8 Queens 问题

嗨,我遇到了这个问题**

编写一个算法来打印在棋盘上排列 8 个国王的所有方式,以便没有一个具有相同的行、列、对角线

**

如何检查对角线部分?还如何枚举所有可能的情况?

谢谢你的建议。。

0 投票
3 回答
9396 浏览

c++ - C++ 错误“X 未在此范围内声明”

所以我下载了这个国际象棋引擎:http ://www.ascotti.org/programming/chess/chess.htm

我尝试用 eclipse 编译和运行它......但随后它显示了一大堆错误......

其中在包括 bitboard.h、hash.h 和 pawnhash.h 在内的多个文件中有很多“X 未在此范围内声明”错误......

该错误是什么意思,您将如何从这些代码中解决这些错误?

还有很多 Uint64 没有被声明的错误,比如在 bitboard.h 中......

再次为什么会这样,您将如何解决?

提前谢谢

编辑:错误日志

编辑

这是 platform.h 的内容,其中定义语句为:

以及出现错误的文件之一 bitboard.h:

0 投票
0 回答
18695 浏览

android - 安卓国际象棋游戏示例

我想知道在国际象棋游戏的书籍/博客中是否有 android 开源代码或教程(可以排除 AI,因为无论如何我都必须忽略它,因为我正在编写一个类似但足够不同的游戏无论如何都要纠正我自己的人工智能)。我看了一些,发现没有任何实际用处,因为我看不懂chinees congee,即使那样,那些评论也很分散。任何帮助都会很棒,至少要寻找一个棋盘游戏框架。

0 投票
3 回答
1697 浏览

java - 识别网页中的颜色/图案

我想尝试创建一个学习国际象棋应用程序作为学校项目。我的第一个计划是简单地让这个 AI 与自己对抗,但要真正展示它是否成功,它需要能够展示它的进展情况。为了做到这一点,我希望它在 chess.com 等网站上玩评级游戏。但是,我相信他们(还)没有公共 API。

因此,我想用java制作一个识别颜色和图像的程序。它保留所有位置的内部二维数组,并识别板上的棋子。我想我已经找到了一种在窗口中使用Java Robot Class之类的方法来执行此操作。

但是,我希望它在内部窗口中打开此网页并在后台继续执行此操作。有没有办法在自己的窗口中识别颜色,而不需要在前景中?

编辑:我打算使用我刚刚找到的这个浏览器组件。我注意到可以创建页面的整页快照并将其保存为 BufferedImage(?)。这会让这样做更容易吗?

编辑2:我刚刚读到“完全禁止来自其他人、计算机/国际象棋引擎或残局表库的外部帮助”。我想让电脑完成所有的演奏当然也包括在内。所以我可能会尝试使用另一个网站,所以特定于 chess.com 的答案不会削减它!

0 投票
3 回答
1742 浏览

c++ - 创建抽象类的克隆

我正在编写一个国际象棋程序,我有一个名为Pieces. 我通过使用指针在我的主类中使用这个抽象类,如下所示:Pieces * newset = currentboard[][];

如果我在这块棋盘上移动,实际上已经移动了。我想分析板的当前状态,因此创建板的副本。我怎么做?

下面给出了我的班级样本Piece和我正在做的事情。

这是派生类的示例:

使用类进行移动:

我希望能够在不使用指针的情况下引用此类,以便不对电路板进行永久性更改。