假设我有多个用于特定棋盘游戏的 AI 程序,全部以不同的语言实现,并希望让它们在没有人类中介的情况下相互竞争。我该怎么办?
我想这对于人工智能研究人员、爱好者、游戏比赛等来说是一个普遍的问题。
有没有共同的架构?也许人工智能作为独立的进程运行,并通过套接字与中央“板”进程通信?
假设我有多个用于特定棋盘游戏的 AI 程序,全部以不同的语言实现,并希望让它们在没有人类中介的情况下相互竞争。我该怎么办?
我想这对于人工智能研究人员、爱好者、游戏比赛等来说是一个普遍的问题。
有没有共同的架构?也许人工智能作为独立的进程运行,并通过套接字与中央“板”进程通信?
我不认为有一个共同的协议。GGTP,Michel Quenault 和 Tristan Cazenave 的通用游戏文本协议非常有趣,因为它描述了您在设计通用解决方案时遇到的困难,并且有很多参考资料,但事实并非如此
因此,您必须依靠临时协议。
对于国际象棋,有国际象棋引擎通信协议(又名Xboard /Winboard 协议)和通用国际象棋接口(UCI)。
随着多年的发展,Xboard 协议已经发展,现在支持标准国际象棋游戏以及各种国际象棋变体,包括世界上主要的国际象棋形式(象棋、将棋、马克鲁克)以及西方变体。
两者都可以免费使用,无需支付许可费。
对于Go,有Go 文本协议(FTP)
对于跳棋/草稿,有CheckerBoard API和DamExchange 协议