中国象棋博弈程序的实现_第1页
中国象棋博弈程序的实现_第2页
中国象棋博弈程序的实现_第3页
中国象棋博弈程序的实现_第4页
中国象棋博弈程序的实现_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 (179) 中国象棋博弈程序的实现【摘要】本文在概述计算机博弈,特别是中国象棋软件概况的基础上,分析了现有中国象棋博弈软件实现方法中存在的问题,设计了棋盘、棋子和评价函数的表示方法,应用VC和MFC设计并实现了博弈界面,在博弈树理论的基础上采用递归方法实现了-剪枝搜索。该程序用户界面良好,支持悔棋功能,具有一定的棋力。关键词:中国象棋;博弈树;-剪枝;计算机博弈;VC;MFC【Abstract】In this thesis, we first present a survey of the state of the art in Computer Game, especially

2、Computer XiangQi software. Then aiming at addressing the existing problems in XiangQi software, we design a concise framework for XiangQi chessboard representation, static evaluation function and human-computer interface. Further, we implement the - pruning game tree search, the interface and the Xi

3、angQi game program MyChess in VC+ and MFC. This program with clear interface and tack-back function is user friendly. It is fair for beginner.Key words:XiangQi; game tree; - pruning; Computer Game; VC ; MFC目 录第一章绪论 11.1 中国象棋 11.2 国内外象棋软件介绍 21.3 中国象棋软件技术 31.4 本文工作重点 4第二章常用搜索算法 52.1 概述 52.2 深度优先搜索 52.

4、3 博弈策略 5第三章棋局表示和走法规则的实现 133.1 棋盘和棋子的表示 133.2 走法规则的实现 13第四章界面设计和走棋的实现 154.1 程序的基本功能 154.2 走棋的实现 154.3 悔棋功能的实现 164.4 胜负的判断 16第五章博弈程序实现 185.1 列表和排序函数 185.2 估值函数 185.3 搜索算法函数 195.4 电脑下棋的最终实现 20第六章总结 22参考文献 23附录代码 24中文翻译资料 35致 谢 43毕业设计(论文)任务书节选一部分一、原始依据(包括设计或论文的工作基础、研究条件、应用环境、工作目的等)   人工智能(Arti

5、ficial Intelligence),英文缩写为AI,是一门综合了计算机科学、生理学、哲学的交叉学科。人工智能的研究课题涵盖面很广,从机器视觉到专家系统,包括了许多不同的领域。这其中共同的基本特点是让机器学会“思考”。为了区分机器是否会“思考”(thinking),有必要给出“智能”(intelligence)的定义。究竟“会思考”到什么程度才叫智能?比方说,解决复杂的问题,还是能够进行概括和发现关联? 还有什么是“知觉”(perception),什么是“理解”(comprehension)等等?对学习过程、语言和感官知觉的研究为科学家构建智能机器提供了帮助。现在,人工智能专家们面临的最大

6、挑战之一是如何构造一个系统,可以模仿由上百亿个神经元组成的人脑的行为,去思考宇宙中最复杂的问题。或许衡量机器智能程度的最好的标准是英国计算机科学家阿伦·图灵的试验。他认为,如果一台计算机能骗过人,使人相信它是人而不是机器,那么它就应当被称作有智能。  基于人工智能的博弈程序将人工智能和娱乐有机结合在一起。人工智能结合最强的博弈程序是国际象棋程序。参加国际象棋锦标赛的国际象棋程序可以看二十多步,而且,国际象棋程序可以不断学习,因此可以不断的提高水平。程序也不会象人那样下棋。一个名叫“深思”的国际象棋程序三分钟内可以思考一亿二千六百万步,而人类国际象棋大师平均只能思考不超过两步

7、。哈波特·西蒙认为,人类国际象棋大师熟悉每一步可行的合适位置和小区域内位置关系。而计算机程序不考虑这些位置间的关系,只通过搜索所有可走的步来确定要走的下一步。而且计算机走的每一步都来自上一步的学习得到。一个运行在克雷计算机上的国际象棋程序拥有2600分等级分,相当于俄罗斯国际象棋世界冠军卡斯帕罗夫级别的水平。  任何博弈过程都可表示成一株博弈树。博弈树的结点对应一个棋局,分支表示一步着法。特别地,根节点表示开始盘面,叶节点表示终局。终局可以是赢、输、和三者之一。在深度优先的最小最大值倒推过程中,博弈树的某些部分并不会产生有意义的值,因而无需扩展这一部分。-剪枝过程就是利用这

8、一点,将生成后继与倒推估计值相结合,及时剪掉一些无用分支,从而提高了搜索效率。  本设计项目拟将人工智能技术与中国象棋博弈相结合,应用博弈树的剪枝技术和最大最小值原理进行搜索,找出博弈的最佳着法,实现基本的人机对弈过程,在实践中更好地学习并掌握人工智能博弈技术。. .       . .(暂略)第一章绪论1.1 中国象棋  中国象棋是我国国粹,历史悠久,普及流行。下棋双方根据对棋局形势的理解和对棋艺规律的掌握,调动车马,组织兵力,协调作战在棋盘这块特定的战场上,进行着象征性的军事战斗。棋盘和棋子象棋是棋子共三十二个

9、,分为红黑两组,各十六个,由对弈双方各执一组,兵种是一样的,分为七种:红方:帅、仕、相、车、马、炮、兵黑方:将、士、象、车、马、炮、卒其中帅与将、仕与士、相与象、兵与卒的作用完全相同,仅仅是为了区分红棋和黑棋。棋子活动的场所,叫做“棋盘”,在长方形的平面上,绘有九条平行的竖线和十条平行的横线相交组成,共九十个交叉点,棋子就摆在这些交叉点上。中间第五、第六两横线之间未画竖线的空白地带,称为“河界”,整个棋盘就以“河界”分为相等的两部分;两方将帅坐镇、画“米”字方格的地方,叫做“九宫”。将或帅移动范围:它只能在王宫内移动。移动规则:它每一步只可以水平或垂直移动一点。士移动范围:它只能在王宫内移动。

10、移动规则:它每一步只可以沿对角线方向移动一点。象移动范围:河界的一侧。移动规则:它每一步只可以沿对角线方向移动两点,另外,在移动的过程中不能够穿越障碍。马移动范围:任何位置移动规则:每一步只可以水平或垂直移动一点,再按对角线方面向左或者右移动。另移动的过程中不能够穿越障碍。车移动范围:任何位置移动规则:可以水平或垂直方向移动任意个无阻碍的点。炮移动范围:任何位置移动规则:移动起来和车很相似,但它必须跳过一个棋子来吃掉对方的一个棋子。兵移动范围:任何位置移动规则:每步只能向前移动一点。过河以后,它便增加了向左右移动的能力,兵不允许向后移动。胜、负、和对局中,出现下列情况之一,本方算输,对方赢:帅

11、(将)被对方“将死”,即被对方将军却无法应将;自己宣布认输;走棋超时;走棋时循环反复向对方将军三次,违反“不得将三将”的规定。出现以下情况,算和局:一方提议作和,对方同意; 双方走棋出现循环反复达三次,符合“不变作和”的规定,双方又不愿变着时。11.2 国内外象棋软件介绍  自从计算机的出现,人们就一直在研究将博弈移植到计算机上,让计算机和人对弈。国际象棋方面,深蓝早已家喻户晓,1996年,深蓝与卡斯帕罗夫对战,并且在首局成功战胜了这位世界大师。“我能够感受到来自棋桌对面一种新型的智慧。”加里·卡斯帕罗夫  以下是几个比较有名的中国象棋软件:  象棋大师

12、  该软件的DOS版本出现于20年前,是一个比较早的中国象棋软件,在当时同类象棋对弈软件中棋力最高的。该软件虽然只能在DOS下稳定运行,但它的棋力却不容小看。1985年,该象棋程序的Windows版本出现了即象棋大师。  随着象棋博弈程序研究的发展,后来的中国象棋软件的棋力已经达到了大师级的水平。  棋海无涯 软件作者:郑明政、叶剑峰  特点:强大的电脑下棋功能(总会荣誉六段证书);强大的后端棋谱资料处理;独特的棋谱搜寻、开局分析。  获得荣誉:弈天快刀杯第五;弈天长征杯第三十五;6th、7thOlympia银牌;31th新秀杯第三;6th将帅

13、杯五段赛冠军 (升四段);7th将帅杯五段赛冠军 (升五段);7th将帅杯六段赛亚军;7th将帅杯七段赛季军 (荣誉六段);8thOlympia第五;2004世界电脑象棋赛第四;2004启泰杯六段赛第五(对7位五段2胜2和3负);2004启泰杯七段赛第四(对8位六段3胜4和1负)。  象棋奇兵(xqmaster) 软件作者:赵明阳  主要特点:1.搜索速度快。即使是用老的赛扬机器,也能很快搜索到高层,在快棋上具有明显的优势。2.支持64位cpu 多处理器系统以及NUMA系统 在64位cpu上速度可以提升47%(需要64位OS支持)。在双cpu系统中,速度可以提升93%。3.

14、极强的攻杀能力。在复杂的对攻局面下,优化的延伸搜索能力使得本软件能够对当前局面认识得更清楚。善于从乱战中取胜是本软件的一大特点。4.严谨的审局。重视子力位置和棋形,对牵制和多子归边均有详细的考虑,行棋比较人性化。  谢谢大师(Xiexie master)软件作者:Pascal  该中国象棋软件棋力强大。目前出版的官方版xiexie master2.3.0,棋力已可挑战真正大师,是目前最强的中国象棋软件。在2003年11月份世界奥林匹克电脑软体比赛中(8th Computer Olympiad, 2003),得到银牌奖。在2004年6月份在台湾的中国象棋软件争霸赛,更击败众多

15、强大的棋软,荣获冠军。其特点:中残局实力强大。常在开局吃亏的情形下,在中局扭转局势,在处下风时,能顶住对手的强攻。学习能力强。凡是对手下的好棋都被它一一学会,下次相同情形时就使用出来。用家用它越多,会感觉它越来越强。不怕读秒。在残局时,很快就想到12层次以上。可调校它的智能引擎,使它更机器人化(战术好,但战略差),还是更人性化(大局观好,战略强)。21.3 中国象棋软件技术  在中国象棋软件中,核心是搜索技术,比较常见的有:a-b搜索、最小-最大搜索、迭代加深、置换表法。2  另外,随着研究的进行,出现了一些新的高级搜索方法。这些方法都是“带置换表的启发式a-b搜索”的扩展

16、,其中静态搜索和空着裁剪是消除“水平线效应”的基本手段,而期望窗口、主要变例搜索(PVS)和MTD(f)都是a-b搜索的改进。并非所有的棋类游戏都会用到这些方法,而且使用起来会有一些负作用,因此归入高级搜索方法一点也不过分。比较常用的是空着技术。空着向前裁剪   空着向前裁剪(Null-Move Forward Pruning),运用可能忽视重要路线的冒险策略,使得象棋的分枝因子锐减,它导致搜索深度的显著提高,因为大多数情况下它明显降低了搜索的数量。它的工作原理是裁剪大量无用着法而只保留好的。1.4 本文工作重点1) 程序界面设计和实现。2) a-b剪枝搜索的具体实现。3) MFC编

17、程实现人机对奕。4) 悔棋功能的设计和实现。第二章常用搜索算法2.1 概述  人工智能常用的搜索算法包括基本搜索算法和启发式算法。3, 82.2 深度优先搜索  图的深度优先遍历的递归定义:  假设给定图G的初态是所有顶点均未曾访问过。在G中任选一顶点v为初始出发点(源点),则深度优先遍历可定义如下:首先访问出发点v,并将其标记为已访问过;然后依次从v出发搜索v的每个邻接点w。若w未曾访问过,则以w为新的出发点继续进行深度优先遍历,直至图中所有和源点v有路径相通的顶点(亦称为从源点可达的顶点)均已被访问为止。若此时图中仍有未访问的顶点,则另选一个尚未访问的顶点作为新的源点重复上述过程,直至图中所有顶点均已被访问为止。  图的深度优先遍历类似于树的前序遍历。采用的搜索方法的特点是尽可能先对纵深方向进行搜索。这种搜索方法称为深度优先搜索(Depth-First Search)。相应地,用此方法遍历图就很自然地称之为图的深度优先遍历。2.3 博弈策略 . .       . . . .    

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论