你怎么端口象棋AI到iPhone

<p>我想端口象棋AI到iPhone,但我无法弄清楚如何做到这一点。显然,iPhone不支持多线程,所以你不能只是单独编译AI,但必须以某种方式合并到代码。 P&gt; </p><p>我有sjeng发动机实现的GPL副本,但我想不通他们怎么做,因为它是写在C和C ++以及所有我知道的是苹果objc。 P&gt; </p><p>有没有人对如何做到这一点的任何建议?我需要做出某种对什么是一个独立的程序的包装。 P&gt; </p><p>使用代码的文件,我就离开了,只要我能。 P&gt;
</p>

25 浏览 1 回复
  gt   需要   象棋   一个   引擎  

回复

    <p>您的问题实际上是复杂得多,它需要的,因为我觉得你有基本的问题是无关的专为iPhone编写。 P&gt; </p><p>如果你说你已经有一些象棋AI代码,然后在某个地方有一个评价函数,它接受一个游戏状态(板位置,玩家移动),并会给予回复一招的电话。这就是你需要深入并寻找,因为这本质上是“引擎”,将推动您的应用程序,无论你是什么编译平台的东西。 P&gt; </p><p>现在,我的猜测是,这棋AI假定移动搜索是在自己的线程中运行,有可能是设计决策可以很容易地“中断”在任何时候搜索,并把它发挥自己的举动。你当然可以运行在iPhone上的独立的线程代码,所以你的问题是要弄清楚如何梳理出的代码从任何现有的平台依赖性它释放它。 P&gt; </p><p>它可以帮助你,如果你正在编写一个命令行实用程序,在C,在Mac OS X.这将释放你从一个很大的依赖性,并简化了局面,你先运行解决这个问题。我的猜测是,一旦你这样做,你会立即对如何使之成为(可可)iPhone环境中工作的一个好主意。 P&gt; </p><p>我已经成功地移植一个国际象棋引擎到iPhone。这不是困难的移植。最流行的国际象棋引擎采用通用象棋接口协议或国际象棋引擎通信协议。阅读维基百科上每个协议的更多细节。 P&gt; </p><p>现在,说你拿的公开来源UCI国际象棋引擎之一,它在编译C或C ++。的XCode支持C和C ++本身,因此,所有你需要做的是源代码复制到Xcode和他们进行编译。 P&gt; </p><p>下一阶段将发动机被连接到你的界面。同样,这并不困难。您需要将协议命令发送到发动机,该发动机会给你回标准输出的结果。你会使用UNIX的管道需要管的结果()。阅读我的其他线程 http://stackoverflow.com/questions/3619252/fork-on-iphone了解更多详情。 P&gt; </p><p>例如: P&gt; </p><p>假设engine_loop是您引擎的游戏循环(所有的引擎都必须有一个循环)。 P&gt;</p><p>中的代码片段展示了如何从发动机将结果发送到你的界面。现在,你需要做周围的其他方式。这非常类似于上面的代码。在真实的情景,一旦你的连接建立后,您将需要发送UCI的命令,我会给你一个例子: p&gt;</p><p>请仔细阅读UCI国际象棋引擎协议文档。你会需要它。 P&gt;
    </p>

    石琦

相关信息

任何人都知道一个良好的净国际象棋引擎

<p>我在寻找一个体面的净国际象棋引擎。如果有一个良好的国际象棋现有的,任何建议作为一个很好的候选人,以港口到.NET? P&gt; </p>

16 浏览 1 回复   一个   象棋   gt   引擎   国际象棋  

在宽松的自由软件许可证最好的国际象棋引擎[关闭]

<p>什么是许可下免费软件许可证发布的最好的国际象棋引擎?通过宽松的自由软件许可证我的意思是,这是合法的,纳入发动机的代码到我的项目,而无需释放我的整个项目的源代码。 P&gt; </p>

31 浏览 1 回复   gt   许可   引擎   许可证   软件  

怎样快速提高自己国际象棋技能?

怎样快速提高自己国际象棋技能?别告诉我说找别人多下啊。。。

31 浏览 2 回复   象棋   电脑   残局   国际象棋   国际  

免费的国际象棋AI库,最好在Lua(或东西容易翻译到Lua)?

<p>是不是需要一个完整的游戏或应用程序;只是一个核心库,理想可以: p&gt; </p><ul> <li>是针对人 li&gt;竞争力 </li><li>具有可配置的难度 li&gt; </li><li>的定制移动(我可能需要一些不传统的国际象棋存在独有的动作) li&gt...

29 浏览 1 回复   gt   lua   一个   象棋   国际象棋  

国际象棋和中国象棋有什么联系?

国际象棋和中国象棋有什么联系?

28 浏览 5 回复   象棋   中国   国际   国际象棋   中国象棋