1、LOGO1毕业论文答辩毕业论文答辩基于基于VC的网络五子棋游戏软件的网络五子棋游戏软件设计设计 答辩人:答辩人:导导 师:师:专专 业:测控技术与仪器业:测控技术与仪器 LOGO2PPT框架框架研究的内容研究的内容2346 开发语言与开发软件的介绍开发语言与开发软件的介绍 结束语结束语 系统模块系统模块 游戏设计的背景与意义游戏设计的背景与意义15 人工智能的研究人工智能的研究LOGO3增强思维能力增强思维能力 有助于修身养性有助于修身养性适合任何人群适合任何人群带动相关产业的发带动相关产业的发展展促进科学技术的提促进科学技术的提高高互联网的普及互联网的普及网络游戏的快速发展网络游戏的快速发展
2、公众娱乐文化的需求公众娱乐文化的需求悠久的历史文化悠久的历史文化简单的操作规则简单的操作规则LOGO4中国游戏的发展现状中国游戏的发展现状17.3倍倍17.3倍倍LOGO5国内外游戏发展状况国内外游戏发展状况在北美、欧洲和日本,单机游戏(尤其是主机游戏)占据绝大部分游戏市场,在北美、欧洲和日本,单机游戏(尤其是主机游戏)占据绝大部分游戏市场,中国和韩国则以网络游戏为主,全球游戏产业竞争力前六强依次为:美,中国和韩国则以网络游戏为主,全球游戏产业竞争力前六强依次为:美日韩加英中。而在全球网络游戏行业中,美、中、韩分别占据日韩加英中。而在全球网络游戏行业中,美、中、韩分别占据29%,27%,21%
3、份额。份额。LOGO6第二章第二章 研究的内容研究的内容游戏的网络连接游戏的输赢判断游戏背景音乐的设置与播放棋盘的绘制博弈树搜索的过程123455LOGO7第二章第二章 研究的内容研究的内容 网络连接主要是由函数CListenSocket类的OnAccept函数完成,负责监听主客机的连接请求。棋盘的绘制由CRenjuView类的成员函数OnPaint来完成。背景音乐的播放选择是由CRenjuView类的成员函数OnMusicMusic调用PlayBGMusic完成背景音乐的播放。游戏的输赢由CRenjuView类的成员函数IsWin来完成 LOGO8 第三章第三章 开发语言与开发软件的介绍开发
4、语言与开发软件的介绍 在游戏设计中我使用的是Visual C+6.0作为开发软件,C+作为开发语言。Visual C+6.0是一个可视化的C+集成开发环境,它使用了Windows图形用户界面的许多先进特性和设计思想,采用了面向对象语言,是一种方便快捷的Windows应用程序开发工具。C+是一个更好的C,全面兼容C的同时,保持了C的简洁、高效和接近汇编语言等特点。C+既支持面向过程的程序设计,又支持面向对象的程序设计。C+语言具有许多的优点:如语言简洁灵活、程序执行效率高等、具有很好的可移植性和可读性,而且还能直接访问物理地址,是一个很好的开发工具。LOGO9 第四章第四章 系统模块系统模块棋局
5、管理模块棋局管理模块网络连接模块网络连接模块背景音乐模块背景音乐模块测试模块测试模块测试模块测试模块LOGO10 第四章第四章 系统模块系统模块功能描述:功能描述:管理棋局信息管理棋局信息 与其他模块互动与其他模块互动 维护棋局正常进行维护棋局正常进行 性能描述:性能描述:初始化棋盘、棋子初始化棋盘、棋子等数据等数据扫描和记录双方落扫描和记录双方落子信息子信息 棋局管理模块棋局管理模块LOGO11 第四章第四章 系统模块系统模块网络连接网络连接模块模块 制作连接相制作连接相应菜单应菜单发出同步信息发出同步信息 完成主客机完成主客机的邀请的邀请响应鼠标的响应鼠标的输入输入 LOGO12 第四章第
6、四章 系统模块系统模块播放背景音乐播放背景音乐 关闭背景音乐关闭背景音乐 背景音乐背景音乐模块模块CRenju View类的成员函数类的成员函数OnMusicMusic调调用用playBGMusic完成背景音乐的播放,完成背景音乐的播放,playBGMusic函数使用的函数使用的m_midi对象完成对对象完成对MIDI文件的播放。文件的播放。m_midi是是CMidi类的对象。类的对象。CMidi类实现了对类实现了对MIDI文件的打开、播放、前文件的打开、播放、前进、后退等。进、后退等。LOGO13 第四章第四章 系统模块系统模块IP地址地址的设置的设置 LOGO14 第四章第四章 系统模块系
7、统模块游戏测试游戏测试 模块模块棋局管理棋局管理 模块模块模块关系图模块关系图 网络连接网络连接 模块模块背景音乐背景音乐播放模块播放模块LOGO15第四章第四章 系统模块系统模块胜负判断落子后处理查找空位查找空位落子判断落子判断防守策略防守策略选择最佳选择最佳落子位置落子位置LOGO16 第四章第四章 系统模块系统模块 由CRenjuView类的成员函数IsWin来判断是否已经分出胜负,根据当前游戏最后一个落子的情况来判断胜负的。需要从四个位置判断,以该子为出发点的水平方向,竖直方向以及两条分别为 45度角和135度角的对角线方向,观察在这四个方向是否有一方构成连续五颗颜色相同棋子,如果有,
8、则表示该盘棋局已经分出胜负。游戏输赢的判断游戏输赢的判断LOGO17实例分析:实例分析:网络连接网络连接是否暂停游戏是否暂停游戏第四章第四章 系统模块系统模块LOGO18第四章第四章 系统模块系统模块 实例分析:实例分析:白棋获胜白棋获胜是否选择新游戏是否选择新游戏LOGO19第五章第五章 人工智能的研究人工智能的研究 博弈树搜索 人工智能算法是采用人工智能算法是采用最大最小值的搜索方最大最小值的搜索方式,通俗的说是:一式,通俗的说是:一方面要在可选的选项方面要在可选的选项中选择将其优势最大中选择将其优势最大化,另一方面则选择化,另一方面则选择令对手优势最小化的令对手优势最小化的方法,方法,即
9、是一种找即是一种找出失败的最大可能性出失败的最大可能性中的最小值的算法。中的最小值的算法。S根 节 点根节点最佳第二层节点第三层节点300-400-300300400600600-400500-300800500300以以 S为根结点的模型,该树以为根结点的模型,该树以“O”棋局为第棋局为第2层子结点层子结点,以以“”棋局为第棋局为第3层子结点。根据落子的次数不同,层子结点。根据落子的次数不同,可以形成不同层次的节点,即是形成不同形状的博弈树可以形成不同层次的节点,即是形成不同形状的博弈树。LOGO20第六章第六章 结束语结束语由于自己的知识有限,人工智能的算法没有很好由于自己的知识有限,人工
10、智能的算法没有很好地诠释清楚,博弈树的搜索只能作为课题外的研地诠释清楚,博弈树的搜索只能作为课题外的研究。究。通过这次毕业设计,让我对通过这次毕业设计,让我对C+C+以及以及Visual C+6.0Visual C+6.0有了更深层次的了解,重要的是学会了怎么利用网有了更深层次的了解,重要的是学会了怎么利用网络资源来解决遇到的难题。络资源来解决遇到的难题。那些还没有完善的、不懂的知识我会通过日后不那些还没有完善的、不懂的知识我会通过日后不断地学习来弥补,以便日后更好的发展。断地学习来弥补,以便日后更好的发展。LOGO21致谢致谢 我衷心的感谢陈思佳老师对我的悉心指导、支持、监督和帮助。在此我向陈老师致以诚挚的谢意和崇高的敬意!最后,我要感谢测控081班的所有老师、同学和那些好朋友们,谢谢你们陪我一起走完四年的大学,你们的支持与关怀,将是我永远的财富!LOGO22