【问题标题】:writing chess engine for arena gui为 arena gui 编写国际象棋引擎
【发布时间】:2011-03-21 00:15:08
【问题描述】:

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

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

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

【问题讨论】:

    标签: java c++ user-interface chess


    【解决方案1】:

    您可以用任何语言编写引擎并让它与 Arena 一起使用,前提是它使用 WinBoard 或 UCI 协议。这两个都涉及让您的引擎(作为单独的进程运行)输入和输出纯文本。你可以用 C++、Java、Visual Basic、COBOL、Forth 或任何你喜欢的东西来编写它。 (注意:我不建议尝试用 COBOL 编写国际象棋引擎。)

    对于您可能选择作为目标的所有其他国际象棋引擎 GUI,情况大致相同(有很多,只需将 chess gui 输入 Google 即可找到几个):它们都了解 WinBoard 或 UCI 或两者兼而有之,并且他们不在乎引擎是用什么语言实现的。

    【讨论】:

      【解决方案2】:

      编写一个可以在竞技场中使用的引擎真的很容易。您的引擎只需要读取和写入标准输入和输出流(stdin 和 stdout)。您的引擎需要使用特定的协议,您可以在UCI 协议之间进行选择,该协议更易于实现,但仅由几个接口支持,或者xBoard 协议由 Windows 和 Windows 上的更多接口支持Linux。

      我更喜欢 xboard 协议,因为它使用更广泛,并且允许引擎更多控制(例如它允许引擎使用它自己的打开书)

      【讨论】:

      • @menjaraz:你是对的。我必须承认我不了解 UCI 协议以及 xBoard。话虽如此,我仍然觉得使用 xboard 的引擎通常更容易控制。例如,xBoard 引擎在获得授权后也可以自行开始思考(使用硬命令),而 UCI 引擎必须等待 GUI 向其发送一个命令,指定它应该思考的动作。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-02
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多