用于棋盘游戏(国际象棋或其他)的灵活库或服务器?

时间:2009-10-31 15:19:35

标签: c chess

我正在寻找一个我可以用来试验棋盘游戏的程序或图书馆(国际象棋,但不一定 - 其他同样复杂的棋盘游戏) 也可以)。我将测试不同的游戏算法。

这就是我需要的:

  • 如果可能的话,我想让我的节目对抗 球员喜欢gnuchess和crafty,但也反对自己 和一个人类玩家;

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

  • 我可能想要改变游戏规则(初始位置) 件数,件数,甚至运动规则);

  • 灵活(如果库/服务器验证,则可以 例如,象棋会移动,但我想要这样的功能 是可选的,因为我想把它关掉一些 实验);

  • 免费(我可能想进入源代码,也许吧 改变几位)。

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

非常感谢!

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

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

3 个答案:

答案 0 :(得分:2)

VASSAL是一款跨平台引擎,可通过互联网玩棋盘游戏和纸牌游戏。它被设计用于允许人类互相玩耍,但它足够可扩展,你可以添加一个AI播放器。

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

答案 1 :(得分:1)

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

虽然看起来很复杂,但实现非常简单:为了开发可用的应用程序,需要really small subset。 doc通常是指国际象棋引擎,但同样适用于客户端(反转方)。

假设您可以拥有XBoard / Winboard的相同连接,具体取决于已实施的协议数量。如果你需要一些代码来检查,除了经典的Eboard和Xboard之外,网上有很多例子,我的意思是really a lot of(它是一个国际象棋引擎列表,但是其中有人,比如babychess,也是一个GUI前端。)

答案 2 :(得分:0)

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

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

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

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