如何将象棋AI移植到iPhone上

我想把一个象棋AI移植到iPhone上,但我不知道该怎么做。 显然,iPhone不支持多线程,所以你不能简单地单独编译AI,而是必须以某种方式将其合并到代码中。

我有一个sjeng引擎实现的GPL副本,但我不知道他们是怎么做到的,因为它是由C和C++编写的,而我只会Apple的ObjC。

有没有人能推荐一下该怎么做?我需要为一个独立的程序制作某种包装器。

包含代码的文件,我会尽可能地保留它。


回答:

你的问题实际上比它需要的更复杂,因为我认为你遇到的基本问题与专门为iPhone编译无关。

如果你说你已经有一些象棋AI代码,那么在其中的某个地方会有一个对评估函数的调用,该函数接受一个游戏状态(棋盘位置和要移动的玩家),并返回一个移动。 这就是你需要深入研究并找到的,因为这本质上是驱动你的应用程序的“引擎”,而不管你为哪个平台编译。

现在,我猜这个象棋AI假设移动搜索在其自己的线程中运行,这可能是为了方便随时“中断”搜索并让其自己下棋的设计决策。 你当然可以在iPhone上在单独的线程中运行代码,所以你的问题是如何将该代码从其现有的平台依赖项中分离出来。

首先将这个问题视为编写一个在Mac OS X上运行的C语言命令行实用程序可能会对你有所帮助。 这样可以让你摆脱很多依赖项并简化情况。 我猜一旦你完成了这一点,你就会立即知道如何在(Cocoa)iPhone环境中使其工作。

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注