【发布时间】:2011-07-25 12:53:20
【问题描述】:
我正在寻找一种 API 来生成国际象棋中的合法移动验证,最好是使用 Java 语言。
我可以自己编写,但这将是一个幼稚的实现,而且会很慢。所以我需要一个允许或多或少以下操作的工作库:
Board board = new Board();
board.reset();
board.isMoveLegal(playerNum, fromSquare, toSquare);
board.inputMove(playerNum, fromSquare, toSquare);
我想要避免的是必须通过 GUI、互联网连接或其他功能而不是移动生成来浏览完整的国际象棋游戏的代码源。这对我来说会浪费很多时间,我宁愿花几个小时来编写我自己的移动验证器,不管有多慢。我也不需要任何指南来编写自己的库,因为我在互联网上找到了很多。
我在这里问这个问题是因为我在 google 上进行了多次搜索,但没有找到我想要的东西。所以如果你知道的话,如果你能指出这样一个工作代码的链接,你会很高兴。谢谢。
【问题讨论】:
-
除了一些特殊情况,国际象棋中的移动验证非常简单。是什么让您认为“幼稚的实现 [...] 会很慢”?
-
你看过这里的资料了吗? chessprogramming.wikispaces.com
-
@aix:我敢肯定,它会更慢,而且我正在运行一个互联网服务器,所以几个 CPU 周期的差异对我来说是有意义的。
-
@prusswan:是的,我有。它非常庞大,除了指南,我什么也没找到。
-
您的标题提到了“世代”,但您的示例代码仅进行验证。你需要哪一个?生成当前有效的一些(或全部)移动,或验证给定移动是否有效?我猜后者更容易。
标签: java open-source chess