artificial-intelligence - 多个 AI 引擎之间的进程间通信

标签 artificial-intelligence game-engine

我想安排一些 friend 之间的人工智能竞赛。
让我们说井字游戏,
每个玩家编写一个获取棋盘和符号(X\O)的方法,并返回他想轮到他玩的地方。
现在我的问题是如何在另一个程序中“连接”两个 AI,这样我就可以测试所有用户,看看谁的代码最好。
我想到的唯一方法是与文本文件进行通信 - 所有 AI 都有在后台运行的线程并检查文本文件上的更改,引擎将游戏详细信息(转向、棋盘、分数、玩家)汇总到文本文件。

怎样才能做得更好?
还有一件小事,在 AI 比赛的每一轮都有一个时间框架是很常见的吗?
(因为AI程序会在不同的时间在不同的电脑上运行)

最佳答案

从您的问题中不清楚这是否必须在线执行。

如果您正在寻找“最好的井字游戏算法”,您可以简单地:

(这可能略有不同,具体取决于编程语言)

  • 定义一个接口(interface)(例如:ITicTacToeSolver)
  • 让你所有的 friend 以他们自己的方式实现它,并向你发送一个包含他们解决方案的 DLL。
  • 创建将动态加载这些 DLL 的游戏,并测试它们(使用加载的算法玩 1,000,000 场游戏)。
  • 跟踪游戏统计数据以查看哪种算法最好。
  • 关于artificial-intelligence - 多个 AI 引擎之间的进程间通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5697583/

    相关文章:

    machine-learning - 什么样的人工智能会在不考虑 future 的情况下做出选择?

    javascript - 如何使用@tensorflow/tfjs-node v2 保存模型?

    python碰撞检测解决循环依赖

    java - 类Hut数组中的NullPointerException

    c++ - 面向组件的系统中的灵活数据消息传递

    neural-network - 为什么我们应该使用 RNN 而不是 Markov 模型?

    artificial-intelligence - 线性遗传规划常数

    artificial-intelligence - 预防垃圾邮件的最新技术

    android - Andengine (gles2) - ButtonSprite 在点击时没有反应

    java - LibGDX 将文本绘制到左上角