基于Visual-C++的五子棋设计与实现(共50页).doc
《基于Visual-C++的五子棋设计与实现(共50页).doc》由会员分享,可在线阅读,更多相关《基于Visual-C++的五子棋设计与实现(共50页).doc(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上太原科技大学毕 业 设 计(论 文)设计(论文)题目:基于Visual C+的五子棋设计与实现姓 名_ 陈磊_学院(系)_电子信息工程系_专 业_ 通信工程_年 级_ 通信H_ 指导教师_ 司秉楠_2012年 6 月 14 日专心-专注-专业 太原科技大学毕业设计(论文)任务书学院(直属系):电子信息工程系 时间: 2012年1月14日学 生 姓 名陈磊指 导 教 师司秉楠设计(论文)题目基于Visual C+的五子棋设计与实现主要研究内容学习C+编程语言,在Visual C+6.0环境中实现五子棋的设计。研究方法通过Visual C+6.0编写程序和编译程序,并成功
2、运行五子棋游戏,实现五子棋的相关功能。主要技术指标(或研究目标)1.掌握Visual C+6.0的应用,并进行程序的编译和运行。2.编写五子棋的相关程序,以实现五子棋的走棋、悔棋、判断输赢、英雄榜记录等功能。教研室 意见 教研室主任(专业负责人)签字: 年 月 日说明:一式两份,一份装订入学生毕业设计(论文)内,一份交学院(直属系)目录 摘要 自从计算机作为游戏对战平台以来,各种棋类游戏如雨后春笋般纷纷冒出。使得那些喜爱下棋,又常常苦于没有对手的棋迷们能随时过足棋瘾。而五子棋游戏由于其规则简单,变化多端,深受大众喜爱。 五子棋不仅能增强人们的抽象思维能力、逻辑推理能力、空间想象力,提高人们的记
3、忆力、心算能力等,而且深含哲理,有助于修身养性。它既有简单易学的特点,为人民群众所喜闻乐见,又有深奥的技巧。既能组织群众性的比赛、活动,又能举办高水平的国际性比赛。 基于五子棋游戏以上的优点,开发五子棋是一个非常有价值的课题。本系统具有功能齐全、简单易学、既动手又动脑的特点。尤其是游戏的同时,还有声音效果的配合,使游戏更加富有趣味性和消遣性。本系统基于Visual C+6.0软件,主要应用估值函数、负极大值搜索算法、Alpha-Beta剪枝等算法来完成人机对弈功能的实现。本系统的成功开发,能够使人们的日常娱乐生活更加丰富多彩。关键词:五子棋;国际性比赛;人机对弈;Visual C+6.0Abs
4、tractSince the computer as a game platform, various board games have mushroomed out. Makes those who love chess, and often do not have the Jimi opponents will be able to keep a full game addiction. Gobang game and its rules are simple, making love by the public. Gobang can not only enhance peoples a
5、bility to abstract thinking, logical reasoning, spatial imagination and enhancing peoples memory, mental arithmetic ability, but also with deep philosophical, self-help and support. It has easy to learn the characteristics of the eye and ear, other esoteric skills. Can organize the masses of competi
6、tions, activities, but also organized a high level of international competition. Gobang game based on the merits of the above, the development of Gobang is a very valuable subject. The system is fully functional, easy to learn, hands and both mental and physical characteristics. Especially games at
7、the same time, there are sound effects with them to games more interesting and full of fun. Application of this system is mainly valuation function, the negative Maxima search algorithm, such as Alpha-Beta search algorithm to complete the function of the realization of human chessboard. The successf
8、ul development of the system will enable peoples daily life more colorful entertainment.Key words:Gobang International Competition Human Chessboard Visual C+6.0基于Visual C+的五子棋设计与实现第1章绪论1.1课题背景计算机技术的发展,使得计算机在现代企业、家庭中得以普及,应用计算机成为现代人生活中非常重要的一部分。大到政府办公、教育事业、商业活动,小到生活中的每一个细节。随着社会进步的节奏越来越快,人们的生活压力也越来越大。每天
9、奔波于不同的目的地,忙得没有时间和朋友见面,忙得想找个释放压力的机会都没有。这个时候,你是不是非常希望有个游戏,能够陪你轻松愉快度过周末。自从计算机作为游戏对战平台以来,各种棋类游戏如雨后春笋般纷纷冒出。使得那些喜爱下棋,又常常苦于没有对手的棋迷们能随时过足棋瘾,而且这类软件大都水平颇高,大有与人脑分庭抗礼之势。其中战胜过国际象棋世界冠军-卡斯帕罗夫的“深蓝”便是最具说服力的代表。五子棋是一种受大众广泛喜爱的游戏,其规则简单,变化多端,非常富有趣味性和消遣性。同时具有简单易学、既动手又动脑的特点。1.2五子棋介绍五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为“连珠”,英译为“R
10、enju”,英文称之为“Gobang”或“FIR”(Five In a Row的缩写),亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。相传早在尧造围棋之前,五子棋游戏在民间已经相当盛行了。据增山海经中记载:“休舆之山有石焉,名曰帝台之棋,五色而文状鹑卵。”辞海中亦言:“五子棋中棋类游戏,棋具与围棋相同,两人对局,轮流下子,先将五子连成一行者为胜。”唐时由高丽使者带到高丽,后来辗转反复,流传到日本。起先是在日本皇宫内盛行的游戏,只限于王室成员、贵族阶层之间的对弈,后来据说被出入皇宫的挑夫看见,由此便流行民间。五子棋起源于古代中国,发展于日本,风靡于欧洲。对于它与
11、围棋的关系有两种说法,一种说法是早于围棋,早在“尧造围棋”之前,民间就已有五子棋游戏;另一说法是源于围棋,是围棋发展的一个分支。在中国的文化里,倍受人们的青睐。古代的五子棋的棋具与围棋相同,纵横各十七道。五子棋大约随围棋一起在我国南北朝时先后传入朝鲜、日本等地。据日本史料文献介绍,中国古代的五子棋是经由高丽(朝鲜),于1688年至1704年的日本元禄时代传到日本的。到日本明治32年(公元1899年),经过公开征名,“连珠”这一名称才被正式确定下来,取意于“日月如合壁,五星如连珠”。从此,连珠活动经过了不断的改良,主要是规则的变化(即对执黑棋一方的限制)。例如,1899年规定,禁止黑白双方走“双
12、三” ;1903年规定,只禁止黑方走“双三” ;1912年规定,黑方被迫走“双三”亦算输;1916年规定,黑方不许走“长连” ;1918年规定,黑方不许走“四、三、三” ;1931年规定,黑方不许走“双四” ,并规定将1919的围棋盘改为1515的连珠专用棋盘。本世纪初五子棋传入欧洲并迅速风靡全欧。通过一系列的变化,使五子棋这一简单的游戏复杂化、规范化,而最终成为今天的职业连珠五子棋,同时也成为一种国际比赛棋。现代五子棋(连珠)的基本下法是:先由执黑棋一方将一枚棋子落在天元点上,为了尊重对方和出于礼貌,持白棋的一方通常将盘面的第二手棋布在天元下方周围。1.3目的和意义五子棋游戏不仅能增强人们的
13、抽象思维能力、逻辑推理能力、空间想象力,提高人们的记忆力、心算能力等,而且深含哲理,有助于修身养性。五子棋既有现代休闲方式所特有的特征“短、平、快” ,又有中国古典哲学所包含的高深学问“阴阳易理” ;它既有简单易学的特点,为人民群众所喜闻乐见,又有深奥的技巧;既能组织举办群众性的比赛、活动,又能组织举办高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观,它是中西方文化的交融点,也是中西方文化交流的一个平台。五子棋的根在中国,在这个国境里,他有着广泛的群众基础。但与世界先进的五子棋技术相比,我们的棋艺水平还要继续提高,所以我们要推广五子棋,宣传五子棋,争取在较短的时间内赶上和超过
14、世界五子棋坛的先进水平。在这种环境下,开发一个易学实用的五子棋游戏软件是很有必要的。中国作为五子棋的发源国,要对五子棋在下个世纪的发展起到世界性的推动作用。五子棋的发展在中国出现方兴未艾、星火燎原之势。同时还有一大批的中生代棋手和充满希望的“明日之星”。相信,中国棋手攀登五子棋巅峰的日子会早日来到。1.4系统设计思想一个优秀的游戏软件,必须有一个正确的设计思想,通过合理地选择数据结构、操作系统以及开发环境,构成一个完善的体系结构,才能充分发挥计算机应用的优势。根据游戏玩家的实际需求,本系统的设计按照下述原则进行。(1)实用性:系统以用户需求为目标,以方便用户为原则,同时融入先进的设计思想。根据
15、用户实际的需求情况,量身制作一个功能齐全、操作简单、实用性强的游戏软件。充分满足游戏玩家的需求,真正成为为玩家提供轻松、娱乐、休闲的工具。(2)先进性:本软件将充分应用现有成熟的计算机技术、软件开发技术,为用户提供高性能的系统,可以方便的实现玩家的需要。(3)高可靠性:一个实用的系统同时必须是可靠的,本系统通过合理而先进的结构设计以及软、硬件的优化选型,可保证系统的可靠性与容错性。(4)可维护性:系统的设计要求方便维护,包括硬件的维护,软件的维护(更改,升级等)。(5)可扩展性及灵活性:系统的设计以方便未来业务的扩展和系统扩充为目标,系统要求能够方便的升级,充分保护系统的投资。玩家可以根据自己
16、的需要,灵活设置自己的游戏。(6)智能性:智能化是这个游戏软件的一大特色。系统在设计时,充分考虑系统运行的智能性,如果有充足的时间改进,计算机就可以实现更高的AI,在游戏中走的每一步就会考虑得更周密。1.5开发工具简介Visual C+6.0是Microsoft公司开发的基于C/C+的面向对象的可视化集成开发工具,它是Visual Studio中功能最为强大、代码效率最高的开发工具。Visual C+6.0与以前的版本相比有了多方面的改进。它的编译器、调试器、连接器、编辑器、资源编辑器都有所加强。在编辑器中还提供了自动语句生成功能,编辑器会像Visual Basic一样自动提示函数的参数、对象
17、的成员。另外,Visual C+ 6.0还提供了很多向导。MFC提供了一些新的类,提供了更强大的数据访问功能。用户可利用Visual C+6.0以两种方式编写Win32应用程序,一种方式是基于Windows API的C编程方式,另一种是基于MFC的C+编程方式。Visual C+ 6.0的主要特点如下:Visual C+ 6.0的最大特色就是提供面向对象技术的支持,它利用类把大部分与用户界面设计有关的Windows API函数封装起来,通过MFC(Microsoft Foundation Class)类库的方式提供给开发人员使用,大大提高了程序代码的重用性。Visual C+ 6.0提供一个功
18、能强大的应用程序生成向导AppWizard,这也是其得意之处。有了AppWizard,用户将不会为创建繁琐的初始化代码而苦恼。AppWizard将帮助MFC类库的用户自动生成一个运行程序框架一个空的不能做任何事情的应用程序,而用户只需要在该框架的适当部分添加扩充代码就可以得到一个满意的应用程序。Visual C+ 6.0的另一个强大工具就是Class Wizard,用户通过它能够方便而有效地使用和管理MFC类库。以前,继承和派生一个类是一件很麻烦的事,而现在简单了,只需在Class Wizard中指定一些必要信息,Visual C+ 6.0将自动为你生成类的框架和代码。Visual C+ 6.
19、0利用“所见即所得”的方式完成程序界面的设计,大大减轻了程序设计人员的劳动强度,提高了开发效率。Visual C+ 6.0的功能强大,用途广泛。不仅可以编写普通的应用程序,还能很好的进行系统及通信软件的开发。第2章可行性研究与算法分析2.1本系统的可行性研究本系统要实现的目标:作为一个悠闲的小游戏软件,首先应该为用户提供一套方便的操作方法,在游戏模式、用户操作、反馈信息方面应该有明确的说明,能够让大多数玩家能快速上手,使该游戏看上去是一款悠闲的精品。本系统的流程图描述如下:玩家在新开局后,可以设置本局游戏,包括对弈模式、游戏级别、中英文菜单、声音效果等进行设置,即初始化棋盘。初始化棋盘完成后,
20、玩家和计算机就可以在分析了当前棋局以后下棋,即对弈阶段。在玩家和计算机每下了一手棋以后,都会进行胜负的判断,如有胜负,则结束此局游戏。如果此局玩家的成绩比英雄榜里的成绩更好,则把玩家的姓名和成绩记录到英雄榜中,覆盖原来的玩家名和成绩。本游戏软件的系统流程图,如图2.1所示。图2.1系统流程图本系统是一款休闲的小游戏,是人们日常生活娱乐的工具。只要针对大众的喜好,使系统功能齐全,操作简单,界面美观大方,就一定会有市场潜力。根据该系统目标来衡量所需的技术是否具备,一般可从软硬件的性能要求、环境条件、操作人员水平和数量等方面去考虑和分析。考虑到系统实施的可行性,在软件方面选择了性能稳定的VC+6.0
21、开发环境、C+语言来进行开发。VC+是非常成熟的开发工具,因此无论在安全性、可用性及可靠性等方面都毫无置疑,因此软件方面是可行的。在硬件方面,则选择空间较大,只要是Pentium III系列及以上的计算机,内存在256M以上,硬盘在1GB,都可以满足系统的开发需要。当然,硬件的配置越高,系统的开发与运行会更流畅。考虑到如今的家用或商用电脑硬件的整体配置水平,系统在硬件方面是可行的。2.2算法分析五子棋游戏的开发在搜索算法方面,可以有多种选择。通过从不同的角度分析各种搜索方法的效率,来考虑本系统的算法应用。开局时计算机每走一步的平均耗时(ms),如表2.1所示。表2.1各种算法每走一步平均耗时(
22、ms) 通过上表,可以看出使用置换表技术和历史启发技术可以增强搜索效率。综合分析表中几种算法的效率,本系统按照计算机下每一手棋所应用的算法的大致顺序,采用的主要算法有博弈树、负极大值算法、Alpha-Beta剪枝算法、置换表技术、哈希表技术、历史启发等。下面详细地介绍一下这些算法。2.2.1博弈树设想下五子棋的情形,两人对弈,我们将其中一位叫做甲,另一位叫做乙。假定现在该甲下棋,甲可以有225种走法(不论好坏);而对甲的任一走法,乙也可以有与之相对的若干种下法。然后又轮到甲走棋,对乙的下法甲又有若干种方法应对。如此往复。显然,我们可以依此构建一棵博弈树,将所有的走法罗列出来。在这棵树的根部是棋
23、局的初始局面。根的若干子节点则是由甲的每一种可能走法所生成的局面,而这些节点的子节点则是由与之相对的乙的每一种可能走法所生成的局面。在这棵树的末梢,是结束的棋局,甲胜或者乙胜或者是双方都无法取胜的平局。如果我们令甲胜的局面值为WIN,乙胜的局面值为LOST,而和局的值为DRAW。当轮到甲走时,甲定会选择子节点值为WIN或DRAW(如果没有值为WIN的子节点的话)的下法;而轮到乙时,乙则会选择子节点值为LOST或DRAW(如果没有值为LOST的子节点的话)的下法。对于中间节点的值可以有如下计算方法:如果该节点所对应的局面轮到甲下棋,则该节点的值是其所有子节点中值最佳(对甲而言)的一个的值;如果该
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Visual C+ 五子棋 设计 实现 50
限制150内