基于通用协议的五子棋博弈系统
设计说明书
github地址:https://github.com/LiuJian0806/-x
目录
1 引言 1
1.1 开发背景 1
1.2 开发环境配置 1
1.3 运行环境配置 1
2 开发平台 2
3 需求分析与概要设计 3
3.1 系统可行性分析 3
3.2 系统功能需求分析 4
3.3 相关技术需求分析 4
3.4 系统概要设计 4
3.5 功能概要设计 5
4系统详细设计 7
4.1 引擎-平台通信模块的设计与实现 7
4.1.1管道通信模块的设计与实现 8
4.1.2指令解析模块的设计与实现 8
4.2 数据处理模块的设计与实现 9
4.3 界面模块的设计与实现 10
4.4 系统主控模块 11
5 运行效果测试 12
5.1 系统功能需求分析 12
5.1.1系统运行界面 12
5.1.2系统人机对战测试 13
5.1.3系统机机对战测试 15
1 引言
1.1 开发背景
人工智能已成为当今时代最为热门的话题之一,它涉及的学科种类多,包括哲学和认知科学、数学、神经生理学、计算机科学、信息论、控制论等等,不仅如此,它的应用领域更为广阔,几乎渗透了我们生活的方方面面,例如:智能控制、专家系统、机器人学、语言和图像理解、遗传编程、机器人工厂等。
棋牌游戏作为人工智能学习的方向之一,通过棋牌类游戏的开发学习,可以让学习者更好地由入门到深入地学习人工智能。基于五子棋通用引擎协议而开发五子棋引擎便是一个学习人工智能好途径之一。五子棋通用引擎协议顾名思义便是为广大从事五子棋引擎开发者量身定制的通信协议。凡是应用通用引擎协议开发的五子棋引擎,都可以加载于通用引擎协议开发的界面平台进行人机博弈以及机机博弈等,以测试基于通用引擎协议开发的五子棋引擎的棋力优劣。
自人工智能学科兴起以来,从事五子棋引擎开发的开发者越来越多,开发的五子棋引擎也越来越多,但是能够满足开发者测试自己开发的五子棋引擎棋力优劣的平台却少之又少。因此,基于现状,本项目致力于为广大基于五子棋通用引擎协议而从事五子棋引擎的开发者提供一个测试五子棋引擎棋力的平台。以便于五子棋引擎开发者更好地评判其开发的引擎棋力,更好地改进算法,以开发出棋力更优的五子棋引擎。
1.2 开发环境配置
类别 配置
设备硬件 2GHz以上CPU,2G以上内存
设备软件 Visual Studio 2012
1.3 运行环境配置
类别 标准配置 最低配置
设备硬件 2GHz及以上CPU,
4G及以上内存 1GHz及以上CPU,
2G及以上内存
设备软件 Windows10 Windows10
网络通信 不需要联网 不需要联网
2 开发平台
本系统在Visual Studio平台上进行开发,该开发平台集成了大量的库,使得开发者使用起来更加方便、简洁、高效。本系统主要使用C++语言结合平台上的MFC类库进行可视化界面开发。
C++作为一门面向对象语言,更有利于模块化开发,各模块的功能独立,便于小组分工。此外,C++较于其他高级编程语言,处理运行速度更快,效率更高,比较适用于游戏开发。选择C++的另一重要原因在于用于界面开发的MFC类库是以C++类的形式封装了windows的API,因此在界面开发过程中,不会发生不兼容的错误。采用MFC进行界面开发主要原因是其包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类,在使用上直接对控件进行操作即可,而无需编写大量的代码,大大降低了代码的复杂性,使得系统开发更加简单方便。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。
3 需求分析与概要设计
3.1 系统可行性分析
在过去,引擎开发者对引擎的测试显得非常不便利,往往只能在黑框中,通过手动输入指令对引擎进行测试,这种方法并不能对开发的引擎进行高效的棋力测试,并且在测试过程中,频繁的输入会使人产生疲劳,人为输入而导致输入错误的指令的几率上升,从而导致不能正确判断引擎棋力的优劣。因此,采用这种方法对引擎进行测试,既费时又费力且会导致结果误差大。在黑框下进行引擎棋力的测试,如图3.1所示。
图3.1 黑框测试引擎
过去引擎测试流程图如图3.2所示。
图3.2引擎测试流程
由流程图可以看出,人机博弈时通过黑框手动输入下子坐标,引擎“思考”后返回下子坐标,而引擎与引擎之间的博弈则通过手动输入对手引擎下子坐标以达到测试两引擎的棋力,在没有引入机器博弈平台情况下,这种方式的测试无疑是枯燥而繁琐的,既不能够进行大量