0

我正在寻找可用于试验棋盘游戏的程序或库(主要是国际象棋,但不一定——其他类似复杂的棋盘游戏也可以)。我将测试不同的游戏算法。

这就是我需要的:

  • 如果可能的话,我想让我的程序与 gnuchess 和 crafty 之类的玩家对抗,但也可以对抗它自己和人类玩家;

  • 如果我的播放器程序可以通过 TCP 与“服务器”通信就可以了,但如果它有一个 C 接口(不是 C++,因为那样我必须编写一个包装器)会更好;

  • 我可能想更改游戏规则(棋子的初始位置、棋子数量,甚至移动规则);

  • 灵活(例如,如果库/服务器验证国际象棋移动,那没关系,但我希望这样的功能是可选的,因为我想在一些实验中将其关闭);

  • 免费(我可能想进入源代码并可能更改一些位)。

如果有人能指出我这样的图书馆/服务器,我将不胜感激......

非常感谢!

PS:我想包括一个“棋盘游戏”标签,但似乎我需要更多的声誉......

PS 2:我想接受两个答案(它们是互补的)。遗憾的是 StackOverflow 不允许这样做。

4

3 回答 3

2

VASSAL是一个跨平台的引擎,用于在互联网上玩棋盘和纸牌游戏。它旨在让人类互相玩耍,但它具有足够的可扩展性,您可以添加一个 AI 播放器。

它是开源且高度可定制的,人们使用它创建了原创游戏。

于 2009-10-31T18:17:16.940 回答
1

XBoard 协议是国际象棋引擎和图形板前端之间使用的标准。它是纯文本:据我所知,没有图书馆。

虽然看起来很复杂,但实现非常简单:需要一个非常小的子集来开发一个可用的应用程序。文档通常指的是国际象棋引擎,但同样适用于客户端(反转侧)。

假设您可以拥有与 XBoard/Winboard 相同的连接性,具体取决于实现了多少协议。如果您需要一些代码来检查,除了经典的 Eboard 和 Xboard,网络上有很多示例,我的意思是真的很多(这是国际象棋引擎的列表,但其中有一些,例如 babychess , 也是一个 GUI 前端)。

于 2009-10-31T23:07:37.360 回答
0

我不确定这样的东西是否存在..顺便说一下,这些主题中的大多数都很容易自己开发:

  • vs播放器:只需实现输入(您可以使用像ncurses这样简单的东西)
  • vs CPU:这些游戏被称为完美信息游戏,您可以使用简单的算法(如 minmax 树或 negmax)轻松构建 AI
  • 为了允许更改规则,对它们进行硬编码更简单(因为每个游戏都可能有其真正不同的规则
  • 对于 TCP 支持,您应该需要编码移动并将 GUI 部分与服务器部分分开

如果你不打算用大量不同的游戏来测试它,这些游戏会投射出真正可扩展的东西(比如引擎),那将是浪费时间。只需专注于可修改的部分并明智地对其进行编程..

实际上,有些部分不需要是通用的:计划一个好的游戏协议,然后只关心诸如不允许的移动和类似事件之类的事件。

于 2009-10-31T17:54:54.917 回答