我想安排一些朋友之间的AI竞赛。让我们说tic tac toe,每个玩家编写一个方法,得到棋盘和一个符号(X\O),并返回他想要玩的地方。现在我的问题是如何在另一个程序中“连接”两个AI,这样我就可以测试所有用户,看看谁拥有最好的代码。我想到的唯一方法是与文本文件通信-所有的AI都有在后台运行的线程,并检查文本文件上的更改,引擎将游戏细节(转而,棋盘,分数,玩家)汇总到文本文件中。
怎样才能做得更好呢?还有一件小事,在AI比赛中每轮比赛都有一个时间框架,这是很常见的吗?(因为AI程序会在不同的计算机上运行不同的时间)
发布于 2011-04-19 16:27:02
从你的问题中还不清楚这是否必须在线执行。
如果你正在寻找“最好的Tic Tac Toe算法”,你可以简单地:
(根据编程语言的不同,这可能略有不同)
发布于 2011-04-18 09:35:06
如果AI程序在像tic tac toe这样的游戏中竞争,通常每个程序都会有有限的总“思考”时间(例如5分钟),超过分配时间的程序将会失败。
通常,这些程序是通过某种简单的协议连接的,而不是通过文本文件。该协议可以在标准I/O上运行,也可以通过TCP/IP套接字运行。
要使CPU使用率标准化,您可以要求为锦标赛游戏编译所有程序,使其在参考平台上工作,然后提供两台完全相同的PC,两台PC都运行其中一名活动的参赛者。然后,你的锦标赛要求程序可以在这个参考平台上执行。
发布于 2011-04-18 09:38:52
使用一个接口和一个标准的编程语言-这样你就可以忘记文本文件和胡说八道了。
https://stackoverflow.com/questions/5697583
复制相似问题