首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个AI引擎之间的进程间通信

多个AI引擎之间的进程间通信
EN

Stack Overflow用户
提问于 2011-04-18 09:02:19
回答 7查看 467关注 0票数 3

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

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

EN

回答 7

Stack Overflow用户

发布于 2011-04-19 16:27:02

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

如果你正在寻找“最好的Tic Tac Toe算法”,你可以简单地:

(根据编程语言的不同,这可能略有不同)

  1. 定义一个接口(例如: ITicTacToeSolver)
  2. Have你所有的朋友都以他们自己的方式实现它,并发送一个动态链接库给你,游戏将动态加载这些DLL,并测试它们(用加载的算法玩1,000,000个游戏)。
  3. 跟踪游戏统计数据,看看哪个算法是最好的。
票数 1
EN

Stack Overflow用户

发布于 2011-04-18 09:35:06

如果AI程序在像tic tac toe这样的游戏中竞争,通常每个程序都会有有限的总“思考”时间(例如5分钟),超过分配时间的程序将会失败。

通常,这些程序是通过某种简单的协议连接的,而不是通过文本文件。该协议可以在标准I/O上运行,也可以通过TCP/IP套接字运行。

要使CPU使用率标准化,您可以要求为锦标赛游戏编译所有程序,使其在参考平台上工作,然后提供两台完全相同的PC,两台PC都运行其中一名活动的参赛者。然后,你的锦标赛要求程序可以在这个参考平台上执行。

票数 0
EN

Stack Overflow用户

发布于 2011-04-18 09:38:52

使用一个接口和一个标准的编程语言-这样你就可以忘记文本文件和胡说八道了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5697583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档