基于MFC的中国象棋游戏毕业设计论文.docx
《基于MFC的中国象棋游戏毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于MFC的中国象棋游戏毕业设计论文.docx(55页珍藏版)》请在三一文库上搜索。
1、 太原理工大学毕业设计(论文)用纸太原理工大学毕业设计(论文)任务书毕业设计(论文)题目:中国象棋毕业设计(论文)要求及原始数据(资料):1综述中国象棋在国内的发展;2深入了解MFC及TCP/IP通信编程;3熟练掌握TCP/IP通信技术,训练编写MFC程序的能力;4设计并实现中国象棋服务器与客户端;5深入分析TCP/IP的关键技术与MFC编写语言;6训练检索文献资料和利用文献资料的能力;7训练撰写技术文档与学位论文的能力。毕业设计(论文)主要内容:1综述中国象棋在国内的发展;2深入了解MFC及TCP/IP通信编程;3熟练掌握TCP/IP通信技术,训练编写MFC程序的能力; 4设计并实现中国象棋
2、服务器与客户端;5. 深入分析TCP/IP的关键技术与MFC编写语言;6训练检索文献资料和利用文献资料的能力;7训练撰写技术文档与学位论文的能力。学生应交出的设计文件(论文):1内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;2包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。 主要参考文献(资料):1 StevenMBobrowski.Oracle7与客户/服务器计算技术从入门到精通M.北京:电子工业出版社, 1996.2 Comer, D, E. 用TCP/IP进行网际互连M. 北京: 电子工业出版社, 2008. 3 Kleninberg. 算法设计M. 北京:清
3、华大学出版社, 2007.4 王晓鹏. TCP/IP下的Socket及Winsock通信机制J. 航空计算技术, 2004, 2(6):126-128.5 董正言. 面向对象程序设计M. 北京:清华大学出版社, 2010.6 范孙操, 姚垚. 象棋竞赛规则M. 北京:人民体育出版社, 2014年7 Stanley, B, Lippman. C+ PrimerM. 北京:人民邮电出版社, 2006.8 成颖. C+程序设计语言M. 南京:东南大学出版社, 2008.9 陈维兴, 林小茶. C+面向对象程序设计教程M. 北京:清华大学出版社, 2009.10 魏东平, 朱连章, 于广斌. C程序设
4、计语言M. 北京:电子工业出版社, 2010.专业班级学生要求设计(论文)工作起止日期2015年3月23日2015年7月3日指导教师签字日期2015年3月23日教研室主任审查签字日期系主任批准签字日期44中国象棋摘 要象棋是中华民族的传统文化,不仅在国内深受群众喜爱,而且流传国外。传统象棋有许多不便之处,不方便进行棋术的研究探讨。本设计的目的就是在当前局域网条件下实现中国象棋的智能网络对战。在实现网络对弈的同时,重点增加了人机对弈的功能。本文主要介绍局域网象棋游戏的分析思路、整体设计以及功能的实现过程。主要分成三大模块进行设计,分别为界面设计、网络通信和人工智能三个部分。通过界面设计为整个程序
5、构建一个框架;网络通信部分鉴于局域网的特点和游戏本身的要求,本设计采用两层C/S架构来实现相互之间的通信。它主要包含以下几大模块:网络通信模块,图像绘制模块和规则设置模块。网络通信模块使得玩家可以方便的迅速建立起网络连接,从而实现联机对弈和聊天功能;图像绘制模块实现棋盘更新以及棋子动态表示等功能;规则设置模块用于约束玩家的棋步。人工智能部分分为四个模块棋局表示;着法生成;搜索算法;局面评估。该游戏提供网络支持,可以在局域网上进行联网游戏并动态显示,在对弈的同时实时文字聊天,同时实现了人机对弈,是一个拥有一定棋力的中国象棋网络对战平台。关键词:中国象棋;网络通信;人工智能;Chinese che
6、ssABSTRACTThe Chinese chess is one traditional Chinese culture heritage which has been beloved by the domestic folk , and has been introduced abroad. The tradition chess has much inconvenience, it is not easy to study chess. The design has made the intelligent net play of Chinese chess in the curren
7、t LAN a reality. While carrying out the network, particularly raised the function of playing with computer. Based on the analytical approaches, the whole design and the function realization of the LAN chess game, the design has been designated into three big modules, namely the interface designation
8、, the network communication and the artificial intelligence. The interface designation has built up a framework for the whole programme. While for the network communication module, considering the characters of the LAN and the requirements of the game itself, the design has adopted the two-layer C/S
9、 structure to achieve the mutual communication, which includes the following modules such as the network communication module which makes the players to set up the net-connections to play and chat on-line, the image drawing module which realizes the chessboard updates and the chessman movement and t
10、he rule making module which restricts the players chessman moving steps. With regard to the artificial intelligence, it is divided into four parts, i.e., the chessboard presentation, the movement formulation, the search algorithm and the position evaluation.The game offers an access to network and i
11、t can be played and presented dynamically on-line in the LAN. The players even can chat with each other in words simultaneously during the playing. And the design has added the the functions of the chessboard saving and reading, as well as the human-computer playing. Actually, it is an intelligent n
12、et battle platform of Chinese chess with certain capability.Key words:Chinese chess; network communication; artificial intelligence目 录1 概述11.1 套接字概述21.2 象棋游戏概述31.3 需求分析41.4 可行性分析41.5 计算机博弈发展综述41.6 选题的依据和意义61.7 主要研究内容71.8 需要解决的关键问题71.9 论文的组织结构72 总体设计92.1 系统简介92.2 界面设计92.2.1 登录界面设计102.2.2 游戏大厅界面设计102.
13、2.3 房间界面设计112.3 数据结构112.3.1 棋盘的制定112.4 网络通信202.4 智能对战202.5 本章小结213 详细设计223.1 着法生成223.1.1 棋子的初始化223.1.2 走棋223.2 网络通信233.2.1 设计思想233.4 智能设计233.4.1 数据结构243.4.2 局面搜索243.4.3 评估函数254.4.4 代码实现273.5 本章小结284 测试304.1 登录模块测试304.2 传输模块测试314.3 智能模块测试324.4 本章小结325 结论335.1 研究成果335.2 存在的不足335.3 未来展望33参考文献34致 谢35外文翻
14、译361 概述电脑游戏就是以计算机为操作平台,通过人机互动形式实现的能够体现当前计算机技术较高水平的一种新形式的娱乐方式。电脑游戏行业经过二十年的发展,已经成为与影视、音乐等并驾齐驱的全球最重要的娱乐产业之一,其年销售额超过好莱坞的全年收入。当计算机发明以后,电子游戏又多了一个新的载体。电子游戏在整个计算机产业的带动下不断地创新、发展着。自从计算机发明,向各个领域发展,到成为我们现在每天工作和生活必不可少的一部分的这个过程中,电子游戏也逐步渗入我们每个人的娱乐活动中。而计算机已经普及的今天,对于用计算机进行程序编辑的人来说,开发属于自己的游戏,已经不再是梦想。事实上,个人计算机软件市场的大约8
15、0%销售份额是来自游戏软件。中国象棋发展至今已有数千年的历史了,它是中华民族智慧的结晶。在我国,中国象棋的普及程度是其它棋类无法比拟的,大至国际、国内比赛,小至社区街道。如今,仅中国就有2亿人会下中国象棋,且中国象棋的发展趋势日益国际化。它集文化、科学、艺术、竞技于一体,有利于开发人的智慧,锻炼人的思维,培养人的毅力,增强人的竞争意识。象棋是一项智力游戏,以往都是人和人下棋,现在有了计算机我们可以和计算机竞技,人可以与计算机进行对弈。人工智能,英文缩写为AI,最初是在1956年由Dartmouth在学会上提出的。机器博弈被认为是人工智能领域最具挑战性的研究方向之一。早在半个多世纪之前,信息论的
16、创始人C.E.香侬教授就提出了为象棋博弈编程的方案,成为机器博弈的创始人。本象棋游戏软件的设计包括了象棋固有的模式,还能够在网络对战的时候进行文字聊天,这使对战双方能够彼此交流心得增进双方下棋技巧。这大大改善了象棋本身的功能,为广大的象棋爱好者提供一个新的对战平台。而且改善了以往的操作模式,您只需动用电脑的鼠标键盘即可,这使对弈双方的操作更加方便快捷。同时此设计在实现网络对战的同时还实现了人机对弈。所有此设计功能涵盖了网络对战、智能对战等。1.1 套接字概述套接字(Socket)最初是由加利福尼亚大学Berkeley分校为UNIX操作系统开发的网络通信接口,Socket指一个通信端点,借助于它
17、,用户所开发的Socket应用程序,可以通过刚络与其它Socket应用程序进行通信。Windows Sockets是一套开放的、支持TCPIP等多种网络协议的WINDOWS下网络通讯的编程接口,已成为WINDOWS网络编程事实上的标准。UNIX对进程通信问题的全部解答,便构成了Socket机制的全部内容。应用程序通常通过套接字向网络发出请求或者应答网络请求。Socket是TCP/IP网络协议接口。Socket接口是TCP/IP网络最为通用的APT之一。内部定义了许多的函数和例程,应用程序通过调用这些函数可以和不同网络中的应用程序进行通信而不必担心网络协议不同所引发的问题。它可以看成是网络通信的
18、一个端点。在网络通信中需要两个主机或两个进程。通过网络传递数据,程序在网络对话的每一端需要一个Socket。在Windows网络编程中,套接字接口主要有3种类型:流式套接字,数据报套接字以及原始套接字。流式套接字定义了一种面向连接的服务,实现了无差错无重复的顺序数据传输,无长度限制。数据报套接字接口定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证可靠。原始套接字允许对低层协议IP或ICMP直接访问,主要应用网络协议的测试,例如Windows带的Ping程序,就是通过ICMP实现的。 在现在的网络应用中,通信双方最常见的交互模式便是ClientServer模式。客户服
19、务器模式通常采用监听连接的方式实现。Windows Sockets 为Windows下网络异步通讯提供了一种方便的开发和运行环境。网络通信是完全异步的、随机的,考虑其并发性和安全性,而客户-服务器模式能很好地解决这些问题。服务器端应用程序在一个端口监听对服务的请求,也就是说,服务进程一直处于监听状态,当有一个客户端对服务器提出了请求连接,此时服务的主进程接收到信息后开启一个线程专门用来与客户端进行交互并且为客户端处理数据,即对客户端的请求数据做出适当的处理并返回处理后的信息。这个新开的线程专门用来与客户端通信。读取信息后调用函数处理信息并返回。1.2 象棋游戏概述在开发智能象棋游戏程序之前,需
20、要对象棋游戏的具体规则进行研究,便于理解以及向逻辑的转化。象棋规则详细如下:在下棋时,由拿红棋的一方先走,然后黑棋再走。双方轮流各走一步,直至胜负分出为止。而轮到走棋的一方,将某个棋子按照一定规则从一个位置移动到另一个位置,或者吃掉另一方的棋子而占领该位置,上述操作都应当算是走了一步。当双方各走完一步,成为一回合。任何棋子在走动时,如果一方棋子可以到达的位置有对方的棋子,就可以把对方棋子拿出棋盘(称为吃子)而换上自己的棋子。只有炮的吃子方式与它的走法不同:它和对方棋子之间必须隔一个子(无论是自己的还是对方的),具备此条件才能吃掉人家。一定要注意,中隔一个棋子,这个棋子俗称“炮架子”。一方的棋子
21、攻击对方的将(帅),并且在下一步能把它吃掉,俗称“将军”。被“将军”的一方必须立即“应将”,即用自卫的步法曲化解被“将军”的状态。如果被“将军”而无法“应将”,就算被“将死”,输掉本局。轮到走棋的一方将(帅)虽没被对方“将军”,却被禁在一个位置上无路可走,同时己方其他棋子也都不能动,就算被“困死”,同样输掉本局。将(帅):在一局游戏中,将和帅是双方竭力争夺的目标。它只能在“九宫”之内活动,可以上下左右的移动,但是每次走动只向上下左右。但是将和帅不能同时出现一竖线上直并且中间没有其它棋子,否则判定走的一方输棋。士(仕):士(仕)是将(帅)的贴身保镖,它也同样只能在“九宫”内移动。并且士的移动只能
22、是“九宫”内的斜线。象(相):象(相)的主要作用是防守,保护自己的将(帅)。它的走法是每次循对角线走两格。俗称“象走田”。象(相)的活动范围限于“河界”以内的本方阵地,不能过河,且如果它走的“田”字中央有一个棋子的时候,就不能走,俗称“塞象眼”。马:马在走动的方法是先横或竖着走上一格,随后只能向斜线走一格,就像平时人们所说的马走日子。马一次可以选择的行走落点有多达8个。但是当马横或竖走一格的时候该位置上已经有一个棋子了,那么这就发生了别马腿的问题。马就不能走到目的地。车:车的行走是最简单的,无论是横或者竖都能行,前提是只要当中没有其它棋子,距离不限。而车也无疑是象棋中最有价值的棋子了。炮:炮是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MFC 中国象棋 游戏 毕业设计 论文
链接地址:https://www.31doc.com/p-3920876.html