人工智能被广泛用于棋类对弈的主要原因是:
(1) 棋类对弈自古以来就被认为是人类智力活动的象征,若人工智能成功达到、甚至高于人类水平,则就代表AI的发展潜力,从而吸引更多研究者关注并投身其中;
(2) 棋类很适合作为新AI算法的标杆。棋类游戏规则简洁、输赢都在盘面,适合计算机求解。理论上只要在计算能力和算法上有新的突破,任何新的棋类游戏都有可能得到攻克。而在棋类游戏上的表现也可以直观体现出AI之间计算能力与算法的高低,是促进AI算法发展的有效途径。
就本五子棋智能对弈系统
而言,其服务对象为同局域网下的多个终端,讲求联机互动、互相限制、互相博弈,打破了传统二人对弈五子棋规则中,“若无禁手,先手易胜;若为后手,十堵九输”的说法,是AI算法设计、网络通信、数据库等技术的综合应用。
1 效果展示(1) 系统可以正确判定胜负——以率先连续五子连成一条线的玩家为胜
(2) 支持三名玩家参与游戏且具有合理的UI界面,三人各执黑、白、黄三色棋子
(3) 系统包含对战服务平台,用以管理玩家对战、判定胜负、记录走子轨迹等
(4) 支持三个相同或有所不同的智能对弈Agent
(5) 能够在服务端记录并保存所有玩家历史走子记录或棋盘状态变化历史,并能够在客户端中回放
(7) 能在游戏对弈过程中根据走子数据动态输出对每个玩家水平的战斗力评级,以及每个玩家对自身当前态势即输赢概率的估计
(8) 对战服务平台可以将状态、评级等数据实时发送给客户端
总结起来,最终的效果就是:局域网内三个玩家联机,由对战服务器协调游戏进程,三个玩家可以是真人也可以是AI。
技术选型方面,前端使用PyQt,后端使用Flask,数据库使用MySQL
3 主要接口设计上图所示是本项目在对弈过程中用到的主要接口。
上图所示是本项目在玩家管理中用到的主要接口。
4 项目流程4.1 登录注册