中国象棋游戏的设计与实现-毕业设计毕业论文 定稿

中国象棋游戏的设计与实现-毕业设计毕业论文 定稿

ID:9819258

大小:173.29 KB

页数:26页

时间:2018-05-10

中国象棋游戏的设计与实现-毕业设计毕业论文 定稿_第1页
中国象棋游戏的设计与实现-毕业设计毕业论文 定稿_第2页
中国象棋游戏的设计与实现-毕业设计毕业论文 定稿_第3页
中国象棋游戏的设计与实现-毕业设计毕业论文 定稿_第4页
中国象棋游戏的设计与实现-毕业设计毕业论文 定稿_第5页
资源描述:

《中国象棋游戏的设计与实现-毕业设计毕业论文 定稿》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、中国象棋游戏的设计与实现摘要中国象棋发展至今已有数千年的历史了,它是中华民族智慧的结晶。在我国,中国象棋的普及程度是其它棋类无法比拟的,大至国际、国内比赛,小至社区街道。如今,仅中国就有2亿人会下中国象棋,且中国象棋的发展趋势日益国际化。本文首先研究了中国象棋在计算机中的表示问题,讨论如何产生着法等一系列相关内容,其次研究了博弈树的搜索技术及在此基础上发展起来的相关剪枝算法。系统使用MFC文档视图体系结构和VisualC++开发工具,实现了一个具有一定棋力的中国象棋人机对弈程序。此博弈程序实现了人机博弈,悔棋,电脑难度设置,着法名称生成等功能。关键词:中国象棋人工智能博弈树

2、Alpha-Beta搜索目录1前言11.1中国象棋游戏设计背景和研究意义11.2国内外象棋软件发展概况11.3中国象棋游戏设计研究方法11.4本文的主要工作22棋局表示和着法生成22.1棋盘和棋子的表示22.2着法生成43走棋和博弈程序的实现53.1博弈程序的实现53.1.1搜索算法53.1.2着法排序83.1.3局面评估93.2悔棋和还原功能的实现113.3着法名称显示功能的实现123.4胜败判定144界面设计和系统实现154.1界面设计154.2系统实现175总结21参考文献23ABSTRACT24致谢25仲恺农业工程学院毕业论文(设计)成绩评定表261前言1.1中国象

3、棋游戏设计背景和研究意义中国象棋游戏流传至今已经有数千年的历史了,是一种古老的文化,它集文化、科学、艺术、竞技于一体,有利于开发人的智慧,锻炼人的思维,培养人的毅力,增强人的竞争意识。自从计算机发明,向各个领域发展,到成为我们现在每天工作和生活必不可少的一部分的这个过程中,电子游戏也逐步渗入我们每个人的娱乐活动中。在计算机已经普及的今天,对于可以用计算机进行程序编辑的人来说,开发属于自己的游戏,已经不再是梦想,中国象棋历史悠久不仅源远流长,而且基础广泛,作为一项智力运动更成为我们游戏开发的首选对象。中国象棋是一项智力游戏,以往都是人和人下棋,现在有了计算机我们可以和计算机竞

4、技,人可以与计算机进行对弈。控制计算机的是人类,而人工智能是综合性很强的一门边缘学科,它的中心任务是研究如何使计算机去做那些过去只能靠人的智力才能做的工作。因此,对游戏开发过程中的人工智能技术的研究自然也就成了业界的一个热门研究方向。1.2国内外象棋软件发展概况最早的象棋软件是一副可以外出携带的电子棋盘,后来升级到电视游戏机。开始出现的一些容量很小的象棋软件如:DOS界面《将族》、WIN31程序的《中国象棋》等等,与其说人类下不过电脑,倒不如说是没有耐性等待电脑程序慢吞吞的搜索算法,有时甚至怀疑软件是否在搜索中死掉了。后来,网络上先后出现了真正的WINDOWS窗口界面的象棋

5、专业高级软件《棋隐》、《象棋世家》、《象棋参谋》、《象棋奇兵》等。总而言之,各类象棋软件既有自身的优点,也存在共通性的缺陷,如:中局审势不够智能化,走不出弃子取势的人性化佳构,残局时智力明显低于人脑,难以走出残局例胜的必然着法等。放眼未来,象棋软件已经走完了一波持续上涨的行情,有可能出现逐步降温的滑坡趋势。1.3中国象棋游戏设计研究方法本系统主要用VisualC++进行开发,里面的MFC类库,使游戏开发更加方便,并利用人工智能相关搜索算法实现人工智能的着法生成,从而完善整个游戏的功能。该象棋人机博弈系统实现的功能主要包括:1、选手选择(人或电脑);2、人机对弈(人与电脑竞技

6、);3、电脑棋力难度选择(电脑下棋能力难度选择,共有4级:按电脑配置选择难度);234、悔棋、还原;5、着法名称显示(象棋走棋规范名称)。1.1本文的主要工作第一部分主要介绍了中国象棋游戏开发的背景及意义、国内外象棋软件的发展概况和象棋游戏的设计研究方法;第二部分介绍了棋局表示方法和着法生成;第三部分介绍了走棋和博弈程序的实现;第四部分介绍了界面设计和系统的实现。2棋局表示和着法生成2.1棋盘和棋子的表示对于中国象棋棋盘局面的表示可采用传统而简单的“棋盘数组”。即用一个9*10的数组来存储棋盘上的信息,数组的每个元素存储棋盘上是否有棋子。这种表示方法简单易行。按此方法棋盘的

7、初始情形如下所示:BYTECChessBoard[9][10]={R,0,0,P,0,0,p,0,0,r,H,0,C,0,0,0,0,c,0,h,E,0,0,P,0,0,p,0,0,e,A,0,0,0,0,0,0,0,0,a,K,0,0,P,0,0,p,0,0,k,A,0,0,0,0,0,0,0,0,a,E,0,0,P,0,0,p,0,0,e,H,0,C,0,0,0,0,c,0,h,R,0,0,P,0,0,p,0,0,r};给所有棋子定义一个值:#defineR_BEGINR_KING#defineR_ENDR_P

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。